gpt4 book ai didi

javascript - Node.js (Openshift) 快速响应不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 22:33:39 24 4
gpt4 key购买 nike

我正在使用 OpenShift 和 Node.js我试图获得每个结果的平均评分,但我不能即使控制台报告正确,也能得到响应。我在控制台中输入 3.9454323 ,但是当我 git localhost:3002/getM/1 时,响应为空白。

app.get('/getM/:movieId', function(request,response) {
var movieId = request.params.movieId;
var connection = mysql.createConnection({
host: process.env.OPENSHIFT_MYSQL_DB_HOST || 'localhost',
user: process.env.OPENSHIFT_MYSQL_DB_USERNAME || 'root',
password: process.env.OPENSHIFT_MYSQL_DB_PASSWORD || '',
port: process.env.OPENSHIFT_MYSQL_DB_PORT || '3306',
database: 'test'
});
connection.connect(function (err) {
if (err) {
console.error('error connecting: ' + err.stack);
response.send("error connecting to database");
return;
}
console.log('connected as id ' + connection.threadId);
});
connection.query('SELECT * FROM `ratings` WHERE `movieId` = ?',[movieId], function(err, result) {
if (err) {
response.send(err);
}
var sum = 0;
result.forEach(function(movie) {
sum += movie["rating"];
console.log(sum);
});
console.log(sum/result.length);
response.send(sum/result.length);
});
});

最佳答案

您正在向 response.send() 传递一个数字参数。以下是明确文档的内容:

res.send([body])

Sends the HTTP response.

The body parameter can be a Buffer object, a String, an object, or an Array.

参见:http://expressjs.com/api.html

试试这个:

response.send( "" + sum/result.length );

编辑:顺便说一句,如果您使用旧版本的express,那么express可能会尝试将数字解释为HTTP状态代码。我不确定 express 将如何处理浮点值,但无论如何,这显然不是您想要的。

Finally when a Number is given without any of the previously mentioned bodies, then a response body string is assigned for you. For example 200 will respond will the text “OK”, and 404 “Not Found” and so on.

参见:http://expressjs.com/3x/api.html#res.send

关于javascript - Node.js (Openshift) 快速响应不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33236940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com