我只是在学习 Node、Mongoose 和 Express。我已经查看了 stackoverflow 和其他地方的所有内容,但我仍然找不到我的问题的答案。
我相当肯定这只是一个非常初学者的错误。当我在 app.post 中保存发布的数据时,我无法在我的 node/express 代码中的其他任何地方访问它。我收到错误“ReferenceError:未定义 getUsersInfo。”
var mongoose = require('mongoose');
mongoose = mongoose.createConnection('localhost', '27017');
mongoose.on('error', console.error.bind(console, 'connection error:'));
var Schema = mongoose.Schema
, ObjectId = Schema.ObjectID;
var usersSchema = new Schema({
username: String,
password: String,
email: String,
date_created:{ type: Date, default: Date.now }
});
var users = mongoose.model('users', usersSchema);
app.get('/', function(req,res){
res.render('layout.jade', {
title : "Hello!"
,analytics: 'XXXXXX'
});
});
app.post('/', function(req, res){
var getUsersInfo = new users({
username: req.body.user,
password: req.body.password,
email: req.body.email,
});
getUsersInfo.save(function (err, getUsersInfo) {
if (err){throw err;}
console.log(getUsersInfo.username);
res.redirect("/success");
});
});
app.get('/success', function(req, res){
res.render('loggedin.jade', {
title : "Admin Panel",
analytics: 'XXXXXX'
});
var username = getUsersInfo("username");
res.write("<h1> hi, " + username + "</h1>");
});
您可以给我的任何帮助(例如查看的地方或编写代码的更好方法)将不胜感激。我尝试从过时的教程中学习,但一无所获,mongoose api/docs 似乎没有涵盖这件事。
谢谢!
编辑
为了澄清我在这里想要实现的目标是我想获取表单输入(在 layout.jade 文件中呈现)并将它们保存到数据库中(我正在做的事情app.post
)。然后我希望能够在代码的其他地方访问这些数据库对象,而不是专门在app.get('/success')
. 但我似乎一直遇到范围问题。