gpt4 book ai didi

javascript - Node.js Mongoose 的麻烦

转载 作者:太空宇宙 更新时间:2023-11-04 02:26:27 25 4
gpt4 key购买 nike

我正在尝试构建我的第一个 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)

我的 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 与 Node 循环有关,但我不知道为什么在启动应用程序时会发生错误。

如有任何建议,我们将不胜感激。

最佳答案

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

如果尚未安装自制程序,请安装 ( 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

关于javascript - Node.js Mongoose 的麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30088141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com