Node.js / Express路由无法正常工作

时间:2015-06-14 11:05:48

标签: javascript node.js express url-routing

首先,我对Node.js很新。这是事情;我正在制作一个移动应用程序,我需要使用路由登录或注册。在android方面,我使用android volley库来完成post方法。这是我在服务器端的代码。

server.js;

   var express    = require('express'),
    validator  = require('express-validator'),
    app        = express(),
    bodyParser = require('body-parser');

    // configure app to use bodyParser() which will get the data from a POST
    app.use(require('express-method-override')());
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: true }));
    app.use(validator);
    app.use(express.static(__dirname + '/public'));

    var http = require('http');
    var ip = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1' || 'localhost',
        port = process.env.OPENSHIFT_NODEJS_PORT || '8080';

    // REGISTER ROUTES
    app.use('/', require('./routes').router);

    http.createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/plain'});
      res.end('Hello World\n');
    }).listen(port, ip);

    console.log('Server running at http://'+ip+':'+port+'/');  

和routes.js

var router     = require('express').Router(),
    db         = require('./connectdb')(),
    formidable = require('formidable'),
    fs         = require('fs-extra'),
    util       = require('util'),
    path       = require('path');

router.use(function(req, res, next) {
    console.log('--new request--');
    next(); // visit next routes
});


//ANDROID General routes
router.get('/andro', function(req, res) {
    res.json({ message: 'Login/RegisterSystem!' });   
});


// LOGIN Route
router.route('/andro/login').post(function(req, res) {
    var tag      = req.body.tag,
        email    = req.body.email,
        password = req.body.password;

    console.log(email);
    console.log(password);

});

module.exports.router = router;

我正在观看服务器日志,但是当我使用domainname.com/andro/login或其他已定义的路由时,我看不到任何日志。

日志

Server running at http://127.12.211.129:8080/

任何方法都会很棒。也许我还没有理解这些路线的运作方式。我应该如何理解路线是否正常工作?

2 个答案:

答案 0 :(得分:3)

http.createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/plain'});
      res.end('Hello World\n');
    }).listen(port, ip);

实际上,你创建的http服务器与express();

创建的应用程序无关
http.createServer(app).listen(port, ip);

或只是

app.listen(port, ip);

答案 1 :(得分:1)

使用node.js的Sleek.js MVC框架。

管理应用程序代码非常简单