1
我想查詢到不同的收集用戶名,然後能夠插入到另一個集合無法讀取的不確定
這是Post.js文件屬性「newPost」
var mongoose = require('mongoose');
var user = require('./Users.js');
var PostSchema = mongoose.Schema({
uid : String,
text: String,
usename: String,
date: Date,
upvotes: Number,
downvotes: Number
});
var Post = module.exports = mongoose.model('Post', PostSchema);
module.exports.newPost = function(data){
var userid = data.uid;
var username = '';
user.User.findOne({_id:userid}, function(err,data){
if(err) req.flash('error_msg','Invalid username');
console.log(data)
});
};
這是路線Index.js文件
var express = require('express');
var router = express.Router();
var Posts = require('../models/Post.js');
var uid = '';
router.get('/', ensureAuthenticated, function (req, res) {
uid = req.query.uid;
console.log(uid);
res.render('index')
})
router.post('/', function(req, res){
var post = req.body.post;
var date = Date();
var postData = {
uid : uid,
text: post,
usename: uid,
date: date,
upvotes: 0,
downvotes: 0
};
console.log(postData);
Posts.newPost(postData);
});
function ensureAuthenticated(req, res, next){
if(req.isAuthenticated()){
return next();
} else {
req.flash('error_msg','You are not logged in');
res.redirect('/users/login');
}
}
module.exports = router;
這是user.js的文件
var mongoose = require('mongoose');
var bcrypt = require('bcryptjs');
// User Schema
var UserSchema = mongoose.Schema({
username: {
type: String,
index:true
},
password: {
type: String
},
email: {
type: String
},
name: {
type: String
}
});
var User = module.exports = mongoose.model('User', UserSchema);
當我運行的服務器,並提交來獲取用戶名,我得到以下錯誤
TypeError: Cannot read property 'newPost' of undefined
at /home/a0_/Projects/Node/forum/routes/index.js:26:12
整個代碼可以在https://github.com/nerditall/forum