簡體   English   中英

使用node.js在mongodb中插入數據

[英]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數據庫中?

有人可以幫我嗎? 非常感謝你!

您需要從路由處理程序調用DAO方法,並在從DAO方法回調時,將成功或失敗響應發送到客戶端。

有關更多信息,您可以查看-

本文

希望這個能對您有所幫助

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM