私はノード、マングース、エクスプレスを学んでいます。私は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')
。しかし、スコープの問題が発生し続けているようです。