gpt4 book ai didi

php - mysql查询在nodeJS中返回undefined

转载 作者:行者123 更新时间:2023-11-29 02:43:09 25 4
gpt4 key购买 nike

此代码返回错误,因为“results(mysql.query)”返回未定义的值。我已经使用 mysql 命令 shell 创建了一个 7~10 行的数据库表,并且该数据库在工作台和命令 shell 中都能完美运行。是不是我mysql安装错了?还是代码错误?我已经在另一台计算机上测试了完全相同的东西,它从那里运行得很好,但突然就不起作用了。我没有复制文件,只是从内存中写下/输入了相同的内容。

我已经搜索过 stackoverflow,似乎每个人都在谈论异步问题,但在我的案例中并不是真正的问题。(之前也有同样的问题)

使用 npm install mysql,mysql版本是community 5.7

crudserver.js(主文件)

const fs = require("fs"); //filesystem
const ejs = require("ejs");
const mysql = require("mysql");
const express = require("express"); //handles all the middlewares
const bodyParser = require("body-parser"); //handles "POST"

const client = mysql.createConnection({
user:"****",
password:"****",
database:"testdb"
});

let app = express();
app.use(bodyParser.urlencoded({
extended:false
}));

app.listen(52273, function(){
console.log("server running at http://127.0.0.1:52273");
});

app.get("/",function (request,response){
fs.readFile("crudlist.ejs","utf8",function(error,data){
client.query("SELECT * FROM products", function(error,results){
response.send(ejs.render(data,{
data:results,
mytitle:"title1",
mytitlesub:"title2"
}));
});
});
});

crudlist.ejs

 <% data.forEach(function (itm,index){ %>
some codes....
<% } >

它说“数据”未定义。

无法读取未定义的属性“forEach” 在评估(在编译时评估(F:\mycoding\node_modules\ejs\lib\ejs.js:549:12),:17:12) 在 returnedFn (F:\mycoding\node_modules\ejs\lib\ejs.js:580:17) 在 Object.exports.render (F:\mycoding\node_modules\ejs\lib\ejs.js:384:37) 在 Query._callback (F:\mycoding\crudserver.js:25:25) 在 Query.Sequence.end (F:\mycoding\node_modules\mysql\lib\protocol\sequences\Sequence.js:88:24) 在 F:\mycoding\node_modules\mysql\lib\protocol\Protocol.js:398:18 在 Array.forEach( native ) 在 F:\mycoding\node_modules\mysql\lib\protocol\Protocol.js:397:13 在 _combinedTickCallback(内部/进程/next_tick.js:73:7) 在 process._tickCallback (internal/process/next_tick.js:104:9)

最佳答案

如果 dataundefined,您很可能有一个您决定不处理的错误:

// note the first parameter of callback function - "error"
client.query("SELECT * FROM products", function(error,results){

您应该测试错误是否存在,只有在不存在时才呈现结果。

关于php - mysql查询在nodeJS中返回undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47331093/

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