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(函数(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(在视图文件夹中)是:
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 
a(href="/delete/#{person._id}") Delete
else
p No People
update.js(在视图文件夹中)是:
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
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- 如何使用 node.js 比较两个 json 数组
- Node.js's Buffer.writeFloatBE in Javascript
- node.js:setInterval()正在跳过调用
- 如何处理node.js节点mongodb中的连接和查询队列
- Node.js正在更改应用程序以使用集群模块
- 如何使用Node.js最有效地解析网页
- 在openshift node js应用程序中获取请求
- 正在删除node.js中已验证的网站
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 在索引.html和应用.js [node.js] 之间共享变量
- Node.js中的JavaScript原型对象效率
- node.js请求数据事件未在CORS ajax调用中触发
- 使用node.js制作网站
- 使用node.js服务器中的evernote api获取note内容
- 有没有任何方法可以使用node-js从不同的机器打开浏览器
- 使用CI和CodeDeploy对node.js应用程序进行连续部署
- 在Node.js中上传和检索图像
- 什么's本地node.js服务器和python简单http服务器之间的区别
- 如何使用 Node JS 获取 JSON 嵌套数组值