簡體   English   中英

無法讀取undefined的屬性'insert'

[英]Cannot read property 'insert' of undefined

這是我使用Mongo db的第一個Node.js程序。 這是我的代碼:

/ ** *模塊依賴項。 * /

 var express = require('express')
 , routes = require('./routes')
 , user = require('./routes/user')
 , http = require('http')
 , path = require('path');
 var mongo = require("./routes/mongo");
 var session = require('express-session');
 var MongoClient = require('mongodb').MongoClient;
 var assert = require('assert');

 var monStore=require("connect-mongo")(session);
 var url = 'mongodb://localhost:27017/session';


 var app = express();

 app.configure(function(){
   app.set('port', process.env.PORT || 4000);
   app.set('views', __dirname + '/views');
   app.set('view engine', 'ejs');
   app.use(express.favicon());
   app.use(express.logger('dev'));
   app.use(express.bodyParser());
   app.use(express.methodOverride());
   app.use(app.router);
   app.use(express.static(path.join(__dirname, 'public')));
 });

 app.configure('development', function(){
   app.use(express.errorHandler());
 });

 app.get('/', routes.index);
 app.get('/users', user.list);
 app.post('/signup',function(req,res){
var email=req.param("email");
var fname=req.param("firstname");
var lname=req.param("lastname");
var password=req.param("password");
var url1="mongodb://localhost:27017/signup";
mongo.connect(url1, function(){
var db= mongo.collection('user');

db.user.insert({"username": email,
                "password":password,
                "firstname":fname,
                "lastname":lname});

res.render("login",{title:"welcome"});
 });
 });

 app.post('/login',function(req,res){
    var email=req.param("email");
var password=req.param("password");
var url1="mongodb://localhost:27017/login";;
mongo.connect(url1, function(){
var db= mongo.collection('signup');
db.findOne({username: email, password:password}, function(err,user){
    console.log(user.email);
    if(user)
        {
        res.render("welcome");
        }
    else
        {
        res.render("login",{title:"ivalid"});
        }
});
});
 });

 MongoClient.connect(url, function() {

  console.log("Connected correctly to server.");

});
 http.createServer(app).listen(app.get('port'), function(){
console.log("Express server listening on port " + app.get('port'));
 });

我得到錯誤無法讀取未定義的屬性'insert'我試圖將值插入數據庫。 我在這里錯過了一些觀點嗎? 有人可以幫幫我嗎?

您正在使用db變量作為集合的引用:

var db= mongo.collection('user');

db.user.insert({"username": email,
...

該集合沒有名為user的屬性,因此在其上調用insert會導致錯誤。

我相信你想這樣做:

var userCollection = var db= mongo.collection('user');

userCollection.insert({"username": email,
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM