尝试使用typescript为节点创建配置

时间:2016-11-20 13:00:12

标签: node.js typescript

所以我努力成为一个好孩子并做正确的事情,目前我认为我会编写一个相当简单的应用程序来更新数据库表,并且因为这些表属于一个应用程序,并且必须要点,但非常我觉得我会用打字稿写出来。

我没有通过edx.org上的一部分Typescript课程,看起来很容易,但我有一个问题,即将简单的配置导出转换为类。

基本上,我正在尝试替换一个简单的配置对象(在Javascript中看起来像这样)。

./配置/ config.js

modules.exports = {
    'lokiLogDb': "./database/log.db",
    'lokiCfgDb': "./database/cfg.db"
} 

我会称之为 var config = require('./ config / config');

所以我的新./config/config.ts

export class config {
    private _lokiLogDb : string = "./database/log.db";
    private _lokiCfgDb : string = "./database/cfg.db";
    private _lokiCfgKey : string = "Th1sC0uldUnl0ckYourK3y";
    get lokiLogDb () {
        return this._lokiLogDb;
    }
    get lokiCfgDb () {
        return this._lokiCfgDb;
    }
    set lokiCfgKey (passwd: string ) {
        return "Not ready yet";
    }
    get lokiCfgKey () {
        return "Not ready yet"
    }
}

好吧,也许有点过头了,但我觉得值得测试。 所以下一步是导入值: 从'./config/config'导入*作为配置;

这就是所有事情都崩溃的地方。我无法读取模块中的任何值。我做错了什么,或者我错过了什么?

=======更新=======

所以我更新了config.ts

export default class config {
    private _lokiLogDb : string = "./database/log.db";
    private _lokiCfgDb : string = "./database/cfg.db";
    private _lokiCfgKey : string = "secretcode";

    get lokiLogDb () {
        return this._lokiLogDb;
    }
    get lokiCfgDb () {
        return this._lokiCfgDb;
    }
    set lokiCfgKey (passwd: string ) {
        return "Not ready yet";
    }
    get lokiCfgKey () {
        return "Not ready yet"
    }
}

我app.ts的开头

import * as debugFactory from 'debug';
import * as http from 'http';
import * as express from 'express';
import * as path from 'path';
import * as logger from 'morgan';
import * as bodyParser from 'body-parser';

import config from './config/config';
console.log("Will connect to ", config )
//import localDB from './modules/localdb';

import sampleRoute from './routes/sample';

我得到的输出是

Will connect to  function config() {
        this._lokiLogDb = "./database/log.db";
        this._lokiCfgDb = "./database/cfg.db";
        this._lokiCfgKey = "secret";
    }

但我无法得到任何变量,我只是以愚蠢的方式做这件事吗?

1 个答案:

答案 0 :(得分:1)

尝试:

export default class config

中的

config.ts

并将其导入:

import {config} from './config/config'

另外,请确保您真正将您的打字稿转换为javascript。