Node.js / Express 路由无法正常工作
Node.js / Express routing doesn't work properly
首先,我是 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;
我正在查看服务器日志,但当我使用域名时,我看不到任何日志。com/andro/login 或其他定义的路由与这些方法。
日志
Server running at http://127.12.211.129:8080/
任何方法都很棒。也许我还不明白路线是如何运作的。我应该如何理解路由是否正常工作?
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(port, ip);
其实你创建的http服务器与express()创建的app没有任何关系;
http.createServer(app).listen(port, ip);
或者干脆
app.listen(port, ip);
首先,我是 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;
我正在查看服务器日志,但当我使用域名时,我看不到任何日志。com/andro/login 或其他定义的路由与这些方法。
日志
Server running at http://127.12.211.129:8080/
任何方法都很棒。也许我还不明白路线是如何运作的。我应该如何理解路由是否正常工作?
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(port, ip);
其实你创建的http服务器与express()创建的app没有任何关系;
http.createServer(app).listen(port, ip);
或者干脆
app.listen(port, ip);