Javascript Mongoose.connect不工作

Javascript Mongoose.connect不工作,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,在命令行中运行nodeserver.js时,出现以下错误: C:\Users\Shaelyn\WebstormProjects\CIT366Projects\cms>node server.js C:\Users\Shaelyn\WebstormProjects\CIT366Projects\cms\node_modules\express\lib\router\index.js:458 throw new TypeError('Router.use() requires a

在命令行中运行node
server.js
时,出现以下错误:

C:\Users\Shaelyn\WebstormProjects\CIT366Projects\cms>node server.js
C:\Users\Shaelyn\WebstormProjects\CIT366Projects\cms\node_modules\express\lib\router\index.js:458
      throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
      ^

TypeError: Router.use() requires a middleware function but got a Object
    at Function.use (C:\Users\Shaelyn\WebstormProjects\CIT366Projects\cms\node_modules\express\lib\router\index.js:458:13)
    at Function.<anonymous> (C:\Users\Shaelyn\WebstormProjects\CIT366Projects\cms\node_modules\express\lib\application.js:220:21)
    at Array.forEach (<anonymous>)
    at Function.use (C:\Users\Shaelyn\WebstormProjects\CIT366Projects\cms\node_modules\express\lib\application.js:217:7)
    at Object.<anonymous> (C:\Users\Shaelyn\WebstormProjects\CIT366Projects\cms\server.js:34:5)
    at Module._compile (module.js:643:30)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Function.Module.runMain (module.js:684:10)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3

您的
mongoose.connect
呼叫工作正常。如果不是,那么您肯定会收到连接失败的
PromiserRejection
,以及
未处理PromiserRejection
的弃用警告

不过,您可以通过在mongoose事件上添加少量事件侦听器来确保这一点

mongoose.connect('mongodb://127.0.0.1:27017');
mongoose.connection.on('connected', () => console.log('Connected'));
mongoose.connection.on('error', () => console.log('Connection failed with - ',err));
这是你的错误。当您将函数以外的任何函数作为处理程序传递给
应用程序时,这种情况更可能发生。请使用
路由器。使用
调用<代码>应用程序。使用和路由器。使用这两种方法都需要将函数传递给它们,以后当请求到达时,这些函数将调用
express

代码顶部的导入语句(您需要路由器的地方)很可能是罪魁祸首,因为默认情况下,每个
模块都是一个对象


我需要查看您的路由器文件,以进一步挖掘问题,但您可以自己验证相同的问题。只需查看导入的每个路由器文件的
module.exports
是否指向express router实例-
express.router()
。通过这种方式,每个路由文件将导出一个已配置的
express.Router()
实例,该实例将是通过
app.use()
调用附加到app的函数。

您是否尝试删除路由
app.use('foo',foooroutes)
并向mongoose.connect添加回调以检查连接是否已建立?我没有。如何向mongoose.connect添加回调?
mongoose.connect('mongodb://127.0.0.1:27017/trace-然后(()=>{console.log(“成功连接到Mongodb数据库”)}).catch(()=>{console.log(“连接到Mongodb数据库时出错”)})
它仍然会给我相同的错误。我进行了一些搜索,发现您的一个路由文件中缺少了一个
模块。exports=router
mongoose.connect('mongodb://127.0.0.1:27017');
mongoose.connection.on('connected', () => console.log('Connected'));
mongoose.connection.on('error', () => console.log('Connection failed with - ',err));