[英]Having trouble inserting documents in mongoDB using mongoose and node.js
[英]Node.js Mongoose trouble
我正在尝试构建我的第一个REST-api,但是我的猫鼬模块不断出现此错误。
错误消息如下所示:
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)
我的server.js文件如下所示:
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');
最后,我的api.js文件如下所示:
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一起运行。 为此,请按照下列步骤操作:
如果尚未安装homebrew( http://brew.sh/ )
然后用它来安装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
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.