日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 调用js 解析yml_nodejs库yaml读取yml或yaml配置文件

發布時間:2024/7/5 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 调用js 解析yml_nodejs库yaml读取yml或yaml配置文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在使用TypeScript編寫后臺接口時,需要讀取yaml配置文件,使用到了yaml這個nodejs庫,其npm官網地址為:https://www.npmjs.com/package/yaml,github源代碼地址為:github.com/eemeli/yaml

比如有如下的config.yaml配置文件:

rxmqtt:

host: 127.0.0.1

port: 11883

user: testuser

pwd: "123456"

id: "this_is_test_2000804_nodejs_water"

clean: true

dbsql:

host: 127.0.0.1

port: 3306

user: root

pwd: "123456"

database: testdb

redis:

host: 127.0.0.1

port: 7001

pwd: 123456

index: 0

http: 8088

rpcUrl: 127.0.0.1:18885

enableMqtt: true

enableDB: true

enableRedis: true

enableWS: true

enableRPC: false

offlineTimeout: 90000

cacheInterval: 10000

使用typescript針對上述config.yaml文件編寫對應的config.ts文件如下:

import YAML = require('yaml')

import fs = require('fs')

declare interface MqttConnOpt{

host: string;

port: number;

user: string;

pwd: string;

clean: boolean;

id: string;

}

declare interface DBConnOpt{

host: string;

port: number;

user: string;

pwd: string;

database: string;

}

declare interface RedisConnOpt{

host: string;

port: number;

pwd: string;

db: number;

}

export {

MqttConnOpt,

DBConnOpt,

RedisConnOpt,

Config,

}

class Config {

rxmqtt: MqttConnOpt;

dbsql: DBConnOpt;

redis: RedisConnOpt;

/**

* http 端口

*/

http: number;

/**

* rpcUrl 服務器地址

*/

rpcUrl: string;

/**

* 是否啟用mqtt

*/

enableMqtt: boolean;

/**

* 是否啟用mariadb

*/

enableDB: boolean;

/**

* 是否啟用redis

*/

enableRedis: boolean;

/**

* 是否啟用websocket

*/

enableWS: boolean;

/**

* 是否啟用RPC

*/

enableRPC: boolean;

/**

* 離線超時時間, 毫秒

*/

offlineTimeout: number;

/**

* 緩存存儲間隔, 毫秒

*/

cacheInterval: number;

constructor(){

try{

let buffer = fs.readFileSync('config.yaml', 'utf8');

let config = YAML.parse(buffer);

this.rxmqtt = config['rxmqtt'];

this.dbsql = config['dbsql'];

this.redis = config['redis'];

this.http = config['http'];

this.rpcUrl = config['rpcUrl'];

this.enableMqtt = config['enableMqtt'];

this.enableDB = config['enableDB'];

this.enableRedis = config['enableRedis'];

this.enableWS = config['enableWS'];

this.enableRPC = config['enableRPC'];

this.offlineTimeout = config['offlineTimeout'];

this.cacheInterval = config['cacheInterval'];

}catch(err){

console.log(err)

}

}

/**

* save

*/

public save() {

try{

fs.writeFileSync('config.yaml', YAML.stringify(this))

}catch(err){

console.log(err)

}

}

}

對應的config.js文件如下所示:

"use strict";

exports.__esModule = true;

exports.Config = void 0;

var YAML = require("yaml");

var fs = require("fs");

var Config = /** @class */ (function () {

function Config() {

try {

var buffer = fs.readFileSync('config.yaml', 'utf8');

var config = YAML.parse(buffer);

this.rxmqtt = config['rxmqtt'];

this.dbsql = config['dbsql'];

this.redis = config['redis'];

this.http = config['http'];

this.rpcUrl = config['rpcUrl'];

this.enableMqtt = config['enableMqtt'];

this.enableDB = config['enableDB'];

this.enableRedis = config['enableRedis'];

this.enableWS = config['enableWS'];

this.enableRPC = config['enableRPC'];

this.offlineTimeout = config['offlineTimeout'];

this.cacheInterval = config['cacheInterval'];

}

catch (err) {

console.log(err);

}

}

/**

* save

*/

Config.prototype.save = function () {

try {

fs.writeFileSync('config.yaml', YAML.stringify(this));

}

catch (err) {

console.log(err);

}

};

return Config;

}());

exports.Config = Config;

相關參考資料

本文同步分享在 博客“雪域迷影”(CSDN)。

如有侵權,請聯系 support@oschina.cn 刪除。

本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

總結

以上是生活随笔為你收集整理的java 调用js 解析yml_nodejs库yaml读取yml或yaml配置文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。