Javascript Node.js Mongoose故障

Javascript Node.js Mongoose故障,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正在尝试构建我的第一个REST api,但我一直在mongoose模块中遇到这个错误 错误消息如下所示: Josephs-MacBook-Pro:rest joseph$ node server API is running on port 3000 /Users/joseph/Documents/Atom-files/rest/node_modules/mongoose/node_modules/mongodb/lib/server.js:228

我正在尝试构建我的第一个REST api,但我一直在mongoose模块中遇到这个错误

错误消息如下所示:

Josephs-MacBook-Pro:rest joseph$ node server
API is running on port 3000

        /Users/joseph/Documents/Atom-files/rest/node_modules/mongoose/node_modules/mongodb/lib/server.js:228
                process.nextTick(function() { throw err; })
                                                    ^
        Error
            at Object.<anonymous> (/Users/joseph/Documents/Atom-files/rest/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:42:24)
            at Module._compile (module.js:460:26)
            at Object.Module._extensions..js (module.js:478:10)
            at Module.load (module.js:355:32)
            at Function.Module._load (module.js:310:12)
            at Module.require (module.js:365:17)
            at require (module.js:384:17)
            at Object.<anonymous> (/Users/joseph/Documents/Atom-files/rest/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/index.js:2:17)
            at Module._compile (module.js:460:26)
            at Object.Module._extensions..js (module.js:478:10)
var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');

mongoose.connect('mongodb://localhost/rest_test');

var app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

app.use('/api', require('./routes/api'));



app.listen(3000);
console.log('API is running on port 3000');
var express = require('express');
var router = express.Router();


router.get('/products', function(req,res){
  res.send('api is working');

});


module.exports = router;
最后,我的api.js文件如下所示:

Josephs-MacBook-Pro:rest joseph$ node server
API is running on port 3000

        /Users/joseph/Documents/Atom-files/rest/node_modules/mongoose/node_modules/mongodb/lib/server.js:228
                process.nextTick(function() { throw err; })
                                                    ^
        Error
            at Object.<anonymous> (/Users/joseph/Documents/Atom-files/rest/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:42:24)
            at Module._compile (module.js:460:26)
            at Object.Module._extensions..js (module.js:478:10)
            at Module.load (module.js:355:32)
            at Function.Module._load (module.js:310:12)
            at Module.require (module.js:365:17)
            at require (module.js:384:17)
            at Object.<anonymous> (/Users/joseph/Documents/Atom-files/rest/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/index.js:2:17)
            at Module._compile (module.js:460:26)
            at Object.Module._extensions..js (module.js:478:10)
var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');

mongoose.connect('mongodb://localhost/rest_test');

var app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

app.use('/api', require('./routes/api'));



app.listen(3000);
console.log('API is running on port 3000');
var express = require('express');
var router = express.Router();


router.get('/products', function(req,res){
  res.send('api is working');

});


module.exports = router;
我(显然)不太熟悉Node.js中的开发,不知道为什么会出现这种错误。我知道
process.nextTick
与节点循环有关,但我不知道为什么在启动应用程序时会出现错误


如果您没有在本地主机上运行mongoDB,这正是mongoose给您的错误。假设您已经安装了mongodb,您可以在带有
mongod
的终端中运行它,但从长远来看,最好使用launchctl运行它。为此,请执行以下步骤:

如果尚未()安装自制软件

然后使用它安装mongodb

brew doctor
brew update
brew install mongodb
将mongoDB配置为通过launchctl运行:

mkdir -p ~/Library/LaunchAgents
pushd ~/Library/LaunchAgents
cp `brew --prefix`/Cellar/mongodb/**/*.mongodb.plist .
launchctl load -w *.mongodb.plist
popd

有了这些,您就可以开始了,重新启动后无需再次运行
mongod

谢谢,非常有用!还有一个问题,如果你不介意的话?脚本在此之后工作,但它总是使终端停止,因此我必须每次按CTRL+C并关闭脚本,这非常烦人。。你知道这可能是什么原因吗?可以单独提问:)这是因为它无法连接到主机?