Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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
Javascript Nodejs基础:如何以及在何处使用require(模块)?_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript Nodejs基础:如何以及在何处使用require(模块)?

Javascript Nodejs基础:如何以及在何处使用require(模块)?,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我刚开始玩nodeJs。目前我有这样的项目: 结构: -app.js -response.js app.js代码: var callback = require('./response.js'); var express = require('express'); var bodyParser = require('body-parser'); var app = express(); var port = process.env.PORT || 3000; // body parser m

我刚开始玩nodeJs。目前我有这样的项目:

结构: -app.js -response.js

app.js代码:

var callback = require('./response.js');
var express = require('express');
var bodyParser = require('body-parser');

var app = express();
var port = process.env.PORT || 3000;

// body parser middleware
app.use(bodyParser.urlencoded({ extended: true }));

// test route
app.get('/', function (req, res) { res.status(200).send('Hello world!') });

app.post('/test', callback);

// error handler
app.use(function (err, req, res, next) {
  console.error(err.stack);
  res.status(400).send(err.message);
});

app.listen(port, function () {
  console.log('Slack bot listening on port ' + port);
});
我的回答是:

module.exports = function (req, res, next) {
  return res.status(200).json({
    attachments: [{ "test": "test" }})]
  });
}
正如您在这里看到的,我使用expressserver来侦听对/testendpoint的post请求,并使用一些测试json来响应这些请求

问题:我想使用mongo-从数据库中获取相同的数据,并在触发/test endpoint时将其和响应一起返回。Mongodb教程指导我安装Mongodb npm模块,然后包括Mongodb模块,并执行其他操作,例如:

// Retrieve
var MongoClient = require('mongodb').MongoClient;

// Connect to the db
MongoClient.connect("mongodb://localhost:27017/exampleDb", function(err, db) {
  if(!err) {
    console.log("We are connected");
  }
});
  • 我可以在response.js中要求mongodb(require('mongodb'))吗?如果是,它是在函数内部还是在module.exports外部
  • 如果我在app.js中需要('mongodb'),有没有办法在response.js中使用它

您可以在每个模块中要求您想要的任何内容。 使用require only from all scopes(不在函数中)作为同步方法,将阻止您的服务器。 另外,在多个其他模块中需要相同的模块也是可以的。NodeJS知道不需要重新编译它


希望对您有所帮助。

是的,您可以在response.js中要求mongodb,它应该在exports之外。如果您在app.js中需要mongodb,您将无法在response.js中使用它

是的,您可以在response.js中需要mongodb,它应该在导出之外。如果你在app.js中需要mongodb,你将无法在回复中使用它。js谢谢Sky,如果你将此添加为正确答案,我将选择正确答案。我已将其添加为答案,谢谢Sky在评论中首先回答,因此我已接受他的答案,谢谢!