[英]Insert data in mongodb with node.js
我在node.js中還很陌生,我正在自己學習,所以對不起我提出的愚蠢/簡單問題感到抱歉。
我想制作一個注冊表並將數據插入到mongodb中。 我正在使用express和mongoose來執行此操作,但是我不知道如何在數據庫中插入數據。
這是我所擁有的:
我的結構是:
Project
|--models
`--user.js
|--routes
`--api.js
|--www
`--register.html
|--server.js
package.json
內容是:
server.js
var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var path = require('path');
var user = require('./models/user');
mongoose.connect('mongodb://localhost/Testdb');
var app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.use('/api', require('./routes/api'));
app.get("/register", function(req, res){
res.sendFile("register.html", { root: path.join(__dirname, './www')});
});
app.post("/register", function(req, res){
var u = new user();
u.firstname = req.body.firstname;
u.lastname = req.body.lastname;
u.locality = req.body.locality;
u.email = req.body.email;
u.password = req.body.password;
//here I get the parameters correctly but I don't now what to do with the user object to insert it in the database
});
app.listen(3000);
console.log('API is running on port 3000');
user.js
var restful = require('node-restful');
var mongoose = restful.mongoose;
var crypto = require('crypto');
var userSchema = new mongoose.Schema({
firstname: String,
lastname: String,
locality: String,
email: {type: String, unique: true},
password: String
});
userSchema.pre('save', function(next) {
var user = this;
var shasum = crypto.createHash('sha1');
shasum.update(user.password);
user.password = shasum.digest('hex');
next();
});
module.exports = restful.model('Users', userSchema);
api.js
var express = require('express');
var router = express.Router();
var user = require('../models/user');
user.methods(['get', 'put', 'post', 'delete']);
user.register(router, '/users');
module.exports = router;
register.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title><Document></Document></title>
</head>
<body>
<form action="/register" method="POST">
<label>Name</label><br/>
<input type="text" name="firstname"/><br/>
<label>Surname</label><br/>
<input type="text" name="lastname"/><br/>
<label>Locality</label><br/>
<input type="text" name="locality"/><br/>
<label>Email</label><br/>
<input type="text" name="email"/><br/>
<label>Password</label><br/>
<input type="password" name="password"/><br/>
<input type="submit" name="submit" value="Register">
</form>
</body>
</html>
從郵遞員執行POST到http:// localhost:3000 / api / users都可以,但是我想在提交表單時這樣做,這就是我不知道該怎么做。 當我提交表單時,它會提醒您加載永遠等待做的事情...如何將這些數據從node.js發布到de數據庫中?
有人可以幫我嗎? 非常感謝你!
使用此方法:
db.collection.insert();
http://docs.mongodb.org/manual/reference/method/db.collection.insert/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.