簡體   English   中英

Mongo沒有使用node.js程序

[英]Mongo not working with node.js program

我正在嘗試創建一個簡單的node.js程序來輸入,更新和刪除人員的“名稱和工作”記錄,並在瀏覽器中顯示相同的內容。 我正在使用node.js,mongo和jade。

以下是我的server.js文件(在“/ base”文件夾中):

var express= require("express"),
http= require("http"),
bodyparser= require("body-parser"),
mongo= require("mongodb");

var app= express();
db= new mongo.Db("newapp", new mongo.Server("127.0.0.1", "27017"), 
                           {safe:true}, {auto_reconnect: true});

var people= db.collection("people");

app.use(bodyparser.urlencoded({extended: true}));

app.get("/", function(req, res){
    people.find().toArray(function(err, docs){
            if(err) 
                throw err;
            res.render("index.jade", {people: docs});   
    });
});

app.post("/", function(req, res){
    people.insert({name: req.body.name, job: req.body.job}, 
            function(err, doc){
                    if(err)
                        throw err;
                    res.redirect("/");
            });
});

app.get("/update/:id", function(req, res){
    people.findOne({_id: new mongo.ObjectID(req.params.id)}, 
            function(err, doc){
                    if(err) 
                        throw err;
                    res.render("update.jade", {person: doc});
            });
});

app.post("/update/:id", function(req, res){
    people.update({_id: new mongo.ObjectID(req.params.id)},
            {
                    name: req.body.name,
                    job: req.params.job
            },  function(err, item){
                    if(err)
                        throw err;
                    res.rediect("/");
            });
});

app.get("/delete/:id", function(req, res){
    people.remove({_id:new mongo.ObjectID(req.params.id)},
            function(err){
                    if(err)
            throw err;
            res.redirect("/");
            });
});

app.listen("3000", function(){
    console.log("Now Listening on port: 3000");
});

我有一個index.jade文件(在“/ base / views /”子文件夾中):

form(method="POST")
    p Name:
        input(type="text", name="name")

    p Job:  
        input(type="text", name="job")

    p: button Add

if(typeof(people)!=="undefined")
    ul
            each person in people
                    li
                        h2= person.name+ " ("+ person.job+ ")"
                        p
                            a(href="/update/#{person._id}") Update
                            a(href="/delete/#{person._id}") Delete

else
    p No People

我的update.jade文件(在“/ base / views /”子文件夾中)是:

form(method="POST")
    p Name:
            input(type="text", name="name", value="#{person.name}")

    p Job:  
            input(type="text", name="job", value="#{person.job}")

    p: button Update

當我在瀏覽器中執行localhost:3000時,它說

GET http://localhost:3000/ net::ERR_CONNECTION_REFUSED

非常感謝任何幫助,非常感謝!

錯誤是我沒有在程序中打開數據庫。 db.open(function(err,db){....}); 是缺少的部分。

工作代碼:

var express= require("express"),
http= require("http"),
bodyparser= require("body-parser"),
mongo= require("mongodb");

var app= express(), 
db= new mongo.Db("newapp", new mongo.Server("localhost", "27017"), 
                             {safe:true}, {auto_reconnect: true});

app.use(bodyparser.urlencoded({extended: true}));

db.open(function(err, db){
    if(err)
        console.log(err);

    people= db.collection("people");

    app.get("/", function(req, res){
        var cursor= people.find();
        cursor.toArray(function(err, docs){
            if(err) 
                throw err;
            res.render("index.jade", {people: docs});   
        });
    });

    app.post("/", function(req, res){
        people.insert({name: req.body.name, job: req.body.job}, 
            function(err, doc){
                    if(err)
                        throw err;
                    res.redirect("/");
            });
    });

    app.get("/update/:id", function(req, res){
        people.findOne({_id: new mongo.ObjectID(req.params.id)}, 
            function(err, doc){
                    if(err) 
                        throw err;
                    res.render("update.jade", {person: doc});
            });
    });

    app.post("/update/:id", function(req, res){
        people.update({_id: new mongo.ObjectID(req.params.id)},{
                    name: req.body.name,
                    job: req.body.job
            }, function(err, item){
                    if(err)
                        throw err;
                    res.redirect("/");
            });
    });

    app.get("/delete/:id", function(req, res){
        people.remove({_id: new mongo.ObjectID(req.params.id)},
            function(err){
            if(err)
                throw err;
            res.redirect("/");
            });
    });
});

app.listen(3000, function(){
    console.log("Now Listening on port: 3000");
});

index.jade(在views文件夾中)是:

form(method="POST")
    p Name:
        input(type="text", name="name")

    p Job:  
        input(type="text", name="job")

    p: button Add

if(people!==NULL)
    ul
        each person in people
                li
                    h2= person.name+ " ("+ person.job+ ")"
                    p
                        a(href="/update/#{person._id}") Update&nbsp
                        a(href="/delete/#{person._id}") Delete

else
    p No People

update.js(在views文件夾中)是:

form(method="POST")
    p Name:
            input(type="text", name="name", value="#{person.name}")

    p Job:  
            input(type="text", name="job", value="#{person.job}")

    p: button Update

暫無
暫無

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

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