Javascript Node.js Mongoose故障
我正在尝试构建我的第一个REST api,但我一直在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
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并关闭脚本,这非常烦人。。你知道这可能是什么原因吗?可以单独提问:)这是因为它无法连接到主机?