Ich habe einen Code erstellt, um einen Server mit node.js, express.js und mongodb zu erstellen. Es ist ein einfacher Code, um Benutzerdaten zu mongodb zu speichern. Ich habe diesen Code mit Advanced REST Client getestet.Wie behebe ich das Problem, um Daten in mongodb in node.js zu speichern?
In diesem Moment werden die Anforderungsparameter übertragen, haben jedoch einen Fehler von 0, wenn die Anforderung mit dieser URL gesendet wird: http://localhost:8080/users.
server.js
var express = require('express');
var app = express();
var port = process.env.PORT || 8080;
var morgan = require('morgan');
var mongoose = require('mongoose');
var User = require('./user');
var bodyParser = require('body-parser');
app.use(bodyParser.json()); // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })); // for parsing application/x-www-form-urlencoded
app.use(morgan('dev'));
mongoose.createConnection('mongodb://localhost:27017/mean', function(err) {
if (err) {
console.log('Not connected to the database: ' + err);
} else {
console.log('Successfully connected to MongoDB')
}
});
// http://localhost:8080/users
app.post('/users', function(req, res) {
var user = new User();
user.username = req.body.username;
user.password = req.body.password;
user.email = req.body.email;
if (req.body.username == null || req.body.username == "" || req.body.password == null || req.body.password == "" || req.body.email == null || req.body.email == "") {
res.send("Ensure username, email and password were provided");
} else {
user.save(function(err) {
if (err) {
res.send("Username or Email already exists.");
} else {
res.send("user created");
}
});
}
});
app.listen(port, function() {
console.log('Running the server on port ' + port);
});
user.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var bcrypt = require('bcrypt-nodejs');
var UserSchema = new Schema({
username: { type: String, lowercase: true, required: true, unique: true },
password: { type: String, required: true },
email: { type: String, required: true, lowercase: true, unique: true }
});
UserSchema.pre('save', function(next) {
var user = this;
bcrypt.hash(user.password, null, null, function(err, hash) {
if (err) return next(err);
user.password = hash;
next();
});
});
module.exports = mongoose.model('User', UserSchema);
package.json
{
"name": "mean",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"bcrypt-nodejs": "0.0.3",
"body-parser": "^2.18.2",
"express": "^4.16.2",
"mongoose": "^4.13.7",
"morgan": "^1.9.0"
}
}
Bitte lesen Sie [Unter welchen Umständen kann ich hinzufügen „ dringende "oder andere ähnliche Sätze zu meiner Frage, um schnellere Antworten zu erhalten?] (// meta.stackoverflow.com/q/326569) - die Zusammenfassung ist, dass dies ist kein idealer Weg, um Freiwillige anzusprechen, und ist wahrscheinlich kontraproduktiv, um Antworten zu erhalten. Bitte unterlassen Sie das Hinzufügen zu Ihren Fragen. – halfer