express.js应用程序没有响应

时间:2013-06-27 11:50:19

标签: javascript jquery node.js express

这是一个快速服务器代码:

var express = require('express');
var mysql = require('mysql');
var app = express();

app.use(express.bodyParser());
app.use(express.static('public'));
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'someuser',
  password : 'somepassword',
  database: 'some_database'
});

connection.connect();
app.get('/users/authenticate', function(req, res){
res.setHeader('Content-Type', 'application/json');
res.send({test:"test"});
res.end();

});

app.listen(3000);
console.log('Listening on port 3000');

现在,当我向此API发出get请求时,我在网络控制台的响应选项卡中得不到任何内容,尽管响应代码为200 ok。请说清楚。我希望这里有JSON数据。 这是我在我的控制台中得到的:

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

尝试使用:

app.get('/users/authenticate', function(req, res){
    res.json({foo:'bar'});
});

此外,如果您在不同的域中执行此操作,则需要设置CORS。

var allowCrossDomain = function(req, res, next) {
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
    res.header('Access-Control-Allow-Headers', 'Content-Type');
    next();
}

app.configure(function() {
    app.use(allowCrossDomain);
}

...如果您尝试从本地主机测试CORS,则需要在禁用某些安全性的情况下打开Chrome。如果您使用的是Mac,则可以使用以下命令完成。只需确保Chrome在运行之前已关闭。

`open -a Google\ Chrome --args --disable-web-security`

答案 1 :(得分:0)

代码没问题。我从浏览器和

获得{test:“test”}
curl http://localhost:3000/users/authenticate