Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 配置文件是否位于节点&;Express应该异步读取吗?_Node.js_Mongodb_Express_Mongoose_Readfile - Fatal编程技术网

Node.js 配置文件是否位于节点&;Express应该异步读取吗?

Node.js 配置文件是否位于节点&;Express应该异步读取吗?,node.js,mongodb,express,mongoose,readfile,Node.js,Mongodb,Express,Mongoose,Readfile,这是一个天真的问题。 假设您有一个配置文件,其中存储了连接到数据库所需的所有内容。 如果是异步读取,连接是否在回调中完成? fs.readFile(pathToConfigFile, function (err, data){ createConnection(data);}); 它看起来丑陋、可疑、有点危险,不是吗? (这是一个例子,但我想听听关于它的一些意见,如果以及为什么它会这样做等等) 在我的例子中,我使用的是mongoose,我在schema对象(即User.find()…)上查询d

这是一个天真的问题。 假设您有一个配置文件,其中存储了连接到数据库所需的所有内容。 如果是异步读取,连接是否在回调中完成?

fs.readFile(pathToConfigFile, function (err, data){ createConnection(data);});
它看起来丑陋、可疑、有点危险,不是吗? (这是一个例子,但我想听听关于它的一些意见,如果以及为什么它会这样做等等) 在我的例子中,我使用的是mongoose,我在schema对象(即User.find()…)上查询db,因此我只得到空结果,因为我猜连接不是同步发生的

多谢各位

(这是我的应用程序结构)


可以在应用程序启动期间同步操作。但是,不要在应用程序启动后执行任何同步操作,尤其是在处理请求时

如果数据库连接成功,应用程序应配置为启动

// set up your app
var express = require('express')
var app = express()

....

// set up database connectiveity
var db = mongoose.connection;
db.on('error', function() {
  console.log('DB connectivity error')
  process.exit()
});
db.once('open', function() {

  // start your app now
  app.listen()

});

可以在应用程序启动期间同步操作。但是,不要在应用程序启动后执行任何同步操作,尤其是在处理请求时

如果数据库连接成功,应用程序应配置为启动

// set up your app
var express = require('express')
var app = express()

....

// set up database connectiveity
var db = mongoose.connection;
db.on('error', function() {
  console.log('DB connectivity error')
  process.exit()
});
db.once('open', function() {

  // start your app now
  app.listen()

});

创建config.json,如下所示:

config.json

module.exports = {
dbUrl:"mongodb://localhost/testDB",
serverPort: 9999
// add you other config key here
}
并需要配置文件,如:

var config = require("./config");

console(config, config.severPort)

建议:使用配置模块。它将根据环境或默认配置文件读取您的配置文件,如下所示:

config.json

module.exports = {
dbUrl:"mongodb://localhost/testDB",
serverPort: 9999
// add you other config key here
}
并需要配置文件,如:

var config = require("./config");

console(config, config.severPort)

建议:使用配置模块。它将根据环境或默认配置文件读取您的配置文件

,最初我不希望我的配置是特定于节点的,这就是为什么我要通过更通用的readFile来处理它。但你的方法是最短的,也可能是最好的。thanks@desmogix您在问题中提到了node&express,所以我提供了答案。另外,最初我不希望我的配置是特定于节点的,这就是为什么我要通过一个更通用的readFile来处理它。但你的方法是最短的,也可能是最好的。thanks@desmogix您在问题中提到了node&express,因此我提供了答案。