无法在节点J

时间:2017-05-03 15:00:52

标签: angularjs node.js express

我是新来的,我收到邮件中无法发布/ api / register错误,控制台中找不到404,我已经检查了所有可能的问题答案。请尽快帮助我。 提前谢谢。

auth.controller.js文件

var express = require ('express'); //EXPRESS Package
var route = express.Router();   //define our app using express
// var userModel = require('../model/user.model');
// var session = require('express-session');
var bodyParser = require('body-parser');// get body-parser
route.use(bodyParser.json()); // for parsing application/json
route.use(bodyParser.urlencoded({ extended: true })); // for parsing   application/x-www-form-urlencoded
/**
 * 
 * Register user
 */
route.post('/api/register', function (req, res) {
    console.log(req.body);//res.sendStatus(200);
    // userModel.create(req.body).then( function () {

    //         res.sendStatus(200);
    // }).catch( function (err) {

    //     res.status(400).send(err);
    // });
});

/**
 * 
 * Login user
 */
route.post('/api/login', function (req, res) {

    // userModel.authenticate(req.body.email, req.body.password).then( function () {

    //     res.sendStatus(200);
    // }).catch( function (err) {

    //     res.status(400).send(err);
    // });
});
module.exports = route;

=============================================== ========================== server.js文件

var express = require ('express'); //EXPRESS Package
var app = express();    //define our app using express

var cors = require('cors');
var session = require('express-session');
var bodyParser = require('body-parser');// get body-parser
// var morgan = require('morgan'); //use to see requests
// var assert = require('assert');
// var path = require('path');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
// app.use(cors());

/**
 * Header Control
 */
app.use(function(req, res, next) {

  res.header('Access-Control-Allow-Credentials', true);
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,PATCH");
  res.header('Access-Control-Allow-Headers', 'X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version');
  next();
} );
//routes
app.use('/api/register', require('./controllers/auth.controller'));
app.use('/api/login', require('./controllers/auth.controller'));
// app.use('/api/users', require('./controllers/users.controller'));

// app.get('/api', function (req, res) {
//     res.send('/api/login');
// } );
// start server
var server = app.listen(8001, 'localhost', function () {

    console.log('Server listening at http://' + server.address().address + ':' + server.address().port);
});

// module.exports = app;

1 个答案:

答案 0 :(得分:1)

使用时

app.use('/api/register', require('./controllers/auth.controller'));

您的应用程序会将/api/register的所有内容路由到require('./controllers/auth.controller')。然后require('./controllers/auth.controller')检查/api/register/api/login剩余的网址,如果您的路由器获得匹配,则将请求路由到相应的中间件。

换句话说,您需要发布到/ api / register / api / register才能访问所需的中间件。

快速解决方案:

你应该删除

app.use('/api/register', require('./controllers/auth.controller'));
app.use('/api/login', require('./controllers/auth.controller'));

并将其替换为:

app.use('/', require('./controllers/auth.controller'));

为了更好的一个:

你应该删除

app.use('/api/register', require('./controllers/auth.controller'));
app.use('/api/login', require('./controllers/auth.controller'));

并将其替换为:

app.use('/api', require('./controllers/auth.controller'));

在您的app.js以及auth.controller.js中,您应该替换:

route.post('/api/register', function (req, res) {
    console.log(req.body);//res.sendStatus(200);
    // userModel.create(req.body).then( function () {

    //         res.sendStatus(200);
    // }).catch( function (err) {

    //     res.status(400).send(err);
    // });
});

/**
 * 
 * Login user
 */
route.post('/api/login', function (req, res) {

    // userModel.authenticate(req.body.email, req.body.password).then( function () {

    //     res.sendStatus(200);
    // }).catch( function (err) {

    //     res.status(400).send(err);
    // });
});

使用:

route.post('/register', function (req, res) {
    console.log(req.body);//res.sendStatus(200);
    // userModel.create(req.body).then( function () {

    //         res.sendStatus(200);
    // }).catch( function (err) {

    //     res.status(400).send(err);
    // });
});

/**
 * 
 * Login user
 */
route.post('/login', function (req, res) {

    // userModel.authenticate(req.body.email, req.body.password).then( function () {

    //     res.sendStatus(200);
    // }).catch( function (err) {

    //     res.status(400).send(err);
    // });
});