我是节点JS和mongo的新手。
我正在一个将用户信息存储在我的数据库中的个人网站上工作。
为简单起见,我想说我在玉器中有以下形式......
form(class="inputs", action="/login", method="post")
input(type="text", name="email",class="form-control", id="emailLogin", placeholder="Queen's Email")
我已经设置了一个数据库,我可以使用以下javascript ...
连接到它var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/user');
var db = mongoose.connection;
db.on('error', console.error);
db.once('open', function() {
// Create your schemas and models here.
});
我希望为使用上述表单注册的每个用户存储来自email
的输入。
我猜我首先要创建一个可能看起来像这样的架构,但我不确定......
var Schema = mongoose.Schema;
var userSchema = new Schema({
email: String
});
//I think I have to create a model too?
要获得POST数据,我想我需要一些看起来像这样的代码......
app.post('/login', function(request, response){
//I am not sure what to put inside
});
我的问题是,有人可以告诉我如何将所有这些实现在一起,这样每次用户注册他们的电子邮件时,它都会保存在数据库中。很难对此进行研究,并多次尝试和失败。
修改
这是我的index.js
文件...
var express = require('express');
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index', { title: 'QChat' });
});
module.exports = router;
此外,这是routes
目录中名为users.js
的另一个文件,我不确定它的用途是什么......
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
res.send('respond with a resource');
});
module.exports = router;
答案 0 :(得分:6)
以下是一些示例代码,希望它能为您提供帮助。
var userSchema = new Schema({
email: String
});
var User = mongoose.model('User', userSchema);
app.post('/login', function(request, response){
var u = new User({
email: request.body.name
});
u.save(function(err) {
if (err)
throw err;
else
console.log('save user successfully...');
});
});
另外,为了正确解析帖子网址,可以在此处使用express,示例代码如下所示。
var bodyParser = require('body-parser')
app.use( bodyParser.json() ); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
extended: true
}));
答案 1 :(得分:1)
user.model.js
var mongoose = require('mongoose')
, Schema = mongoose.Schema
, Q = require('q')
;
var UserSchema = mongoose.Schema({
email: String,
})
UserSchema.methods.Save = function() {
return Q.ninvoke(this, 'save');
}
var User = mongoose.model('User', UserSchema);
user.controller.js
var mongoose = require('mongoose')
, User = mongoose.model('User')
;
app.post('/create', function(request, response){
var user = new User();
user.email = request.body.email;
return user.Save().then(function(users) {
// some code if save succeed
}, function(err){
// some code if save failed
});
});