node.js - 当我启动我的 node.js 服务器时,它启动但给出了一些错误
问题描述
var express = require('express');
var path = require('path');
var mongoose = require('mongoose');
var Article = require('./models/articale');
mongoose.connect('/home/tentron/mongodb/LocalHost/nodekb');
var db = mongoose.connection;
// check for connection
db.once('open', function(){
console.log('connected to db.....');
});
//check for db error
db.on('error', function(err){
console.log(err);
});
//Init app
var app = express();
// load view Engine
app.set('views', path.join(__dirname, 'views'));
app.set('view engine','pug');
// home route
app.get('/', function(_req , res){
Article.find({}, function(err,articles){
if(err){
console.log(err);
}
else{
res.render('index',{
title:'shashank home page',
articles : articles,
});
}
});
});
app.get('/views/add', function(req , res){
res.render('add_artical', {
title : 'add artical'
});
});
//start server
app.listen(3000,function(){
console.log("your server is now ready at port number 3000...");
});
我启动服务器时出错
[nodemon] 由于更改而重新启动... [nodemon] 启动
node index.js
您的服务器现在已准备好在端口号 3000... (节点:8456)UnhandledPromiseRejectionWarning:错误:无效架构,预期mongodb
或mongodb+srv
(/home/tentron/Desktop/web-development-tutor ial/nodejs/projects /node_prject1/index.js:7:10) 在 Module._compile (internal/modules/cjs/loader.js:702:30) 在 Object .Module._extensions..js (internal/modules/cjs/loader.js:7 13:10) 在 Module.load (internal/modules/cjs/loader.js:612:32) 在 tryModuleLoad (internal/modules/cjs /loader.js:551:12) 在 Function.Module._load (internal/modules/cjs/loader.js:543:3) 在 Function.Module.runMain (internal/modules/cjs/loader.js:744:10 )(节点:8456)UnhandledPromiseRejectionWarning:未处理的承诺拒绝离子。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。(拒绝 id:2)(节点:8456)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理 d 的承诺拒绝将使用非零退出代码终止 Node.js 进程。
解决方案
这是因为您使用了格式错误的连接字符串。
它应该是这样的,
mongodb://localhost:27017/nodekb