这是我的完整代码
server.js
import express from 'express';
import morgan from 'morgan';
import mongoose from 'mongoose';
import router from './router';
// Connect to MongoDB
mongoose.connect('mongodb://localhost:27017/myapp');
// Initialize http server
const app = express();
// Logger that outputs all requests into the console
app.use(morgan('combined'));
// Use v1 as prefix for all API endpoints
app.use('/', router);
// Launch the server on port 3000
const server = app.listen(3000, () => {
const { address, port } = server.address();
console.log(`Listening at http://${address}:${port}`);
});
router.js
import express, { Router } from 'express';
// Import register action from movies controller
import register from './controllers/register';
import validator from 'express-validator';
// Initialize the router
const router = Router();
var bodyParser = require('body-parser');
router.use(bodyParser.json()); // support json encoded bodies
router.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies
router.use(validator());
// Handle /movies.json route with register action from movies controller
router.post('/register', register.registerUser);
export default router;
register.js
import mongoose from 'mongoose';
import User from '../models/user';
// Connect to MongoDB
mongoose.connect('mongodb://localhost:27017/myapp', {useMongoClient: true});
exports.registerUser = function(req, res) {
req.checkBody('name', 'Name is required').notEmpty();
req.checkBody('username', 'Username is required').notEmpty();
req.checkBody('email', 'Email is required').notEmpty();
req.checkBody('email', 'Email does not appear to be valid').isEmail();
req.checkBody('password', 'Password is required').notEmpty();
// check the validation object for errors
var errors = req.validationErrors();
console.log(errors);
var resdata = {};
if (errors) {
resdata = {
status: false,
errortype: 'validation',
message: errors
};
res.send(resdata);
} else {
var userdata = {
name: req.body.name,
username: req.body.username,
email: req.body.email,
password: req.body.password,
};
var user = new User(userdata);
user.save(function (error) {
var resdata = {};
if(error) {
if (error.name === 'MongoError' && error.code === 11000) {
resdata = {
status: false,
errortype: 'mongoose-error',
message: "Duplicate Key Error"
};
} else {
resdata = {
status: false,
errortype: 'mongoose-error',
message: error.message
};
}
} else {
resdata = {
status: true,
message: "User Registered Successfully.."
};
}
res.send(resdata);
});
}
};