欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

总结学习nodejs遇见的一些错误

程序员文章站 2022-06-09 08:55:26
...

express 4+


1.Router.use() requires middleware function but got a Object

总结学习nodejs遇见的一些错误

处理:暴露接口: 在js文件顶部 加var express = require('express');
var router = express.Router();

文件底部 :module.exports = router;

2.Required MongoStore option db missing

app.js 顶部加上

var session = require('express-session');
var MongoStore = require('connect-mongostore')(session);

然后继续

app.use(session({
  secret: 'blog',
  key: 'blog',//cookie name
  cookie: {maxAge: 1000 * 60 * 60 * 24 * 30},//30 days
  store: new MongoStore({
    db: 'blog',
    host: 'localhost',
    port: 27017
  }),
  resave:false,
  saveUninitialized:true
}));

3.修改端口,或者端口被占用

var server = app.listen(5939, function () {
  var host = server.address().address
  var port = server.address().port
  console.log("在这个端口访问 http://%s:%s", host, port)
});

4.mongodb 新建用户报错 : addUser is not a function
在mongo bin 目录下 打开命令行 输入如下信息创建

db.createUser(
  {
        user:"root",
        pwd:"root",
       roles:
        [ 
           {
            role:"userAdminAnyDatabase",
            db:"admin"
            }
        ]
    }

总结学习nodejs遇见的一些错误

5./Users/michael/blog/node_modules/mongodb/lib/mongodb/connection/base.js:246 throw message; ^ TypeError: Cannot read property ‘length’ of undefined
额,,这个肯定也和版本的不同有关系,,,但是俺 可能粗暴了点,,直接找到mongo 下面的db.js ,(项目名\node_modules\mongodb\lib\mongodb\db.js),
总结学习nodejs遇见的一些错误
把报错的地方注释掉了,,这里说length 没有定义,说明这个函数传的值有问题,,所以我找到应用到这个函数的三个地方注释后,代码运行成功。
————在数据库正确的连接上的时候,不影响数据的存储,数据存到数据库后可以被增删改查,可用shell命令进行查询

6.连接mongodb

连接mongodb数据库 可以尝试以下方法:
在需要用到数据库的界面加入以下代码,引用mondb,打开或关闭数据库。避免代码冗余重复,可以将代码单独放入一个js文件,通过require引入。

var markdown = require('markdown').markdown;
var server_options={};
var db_options={
        w:-1,
        logger:{
        doDebug:true,
        debug:function(msg,obj){
            console.log('[debug]',msg);
        },
        log:function(msg,obj){
            console.log('[log]',msg);
        },
        error:function(msg,obj){
            console.log('[error]',msg);
        }
    }
};
var mongodb = require("mongodb"),
    mongoserver = new mongodb.Server('localhost', 27017,server_options ),
    mondb = new mongodb.Db('test', mongoserver, db_options);

总结学习nodejs遇见的一些错误

7. …\connect-mongostore\lib\connect-mongostore.js:80…….if throw new Error<’Error connecting to database:\n”\n’+err.stark+’\n’>………Error connect to database…
如果是出现类似上面的错误,就说明数据库没有开启,没有连接上。
此时就要打开数据库。

8. Cannot start server. The default storage engine ‘wiredTiger’ is not available with……
启动mongodb闪退

路径对应上自己的文件路径

D:\Mongo\bin>mongod.exe --dbpath D:Mongo --storageEngine=mmapv1

如果执行此条命令后,出现 ..on port 27017字样 就是启动数据库成功。