为什么受影响的行在更新/删除成功时返回0?
我有话说:
INSERT INTO infotbl(name, phone) VALUES('Alex', '9999999');
并更新它:
UPDATE infotbl SET name = 'Alex Johnes', phone = '999 34356063' WHERE id = 1;
然后删除:
DELETE FROM infotbl WHERE id = 1;
我已经成功插入了,当我更新和删除行已被更改在MySQL。 但我在Node中的代码返回受影响的行= 0.为什么? 有我的function来更新和删除节点中:
function deleteCustomer (id, callback) { db.connection.query("DELETE FROM infotbl WHERE id=?", id, (err, result) => { if (err) throw err; if (result.affectedRows > 0) callback(true); else callback(false); }); };
和更新function:
function updateCustomer(id, name, phone, callback) { db.connection.query("UPDATE infotbl SET name = ?, phone = ? WHERE id = ?;", [name, phone, id], (err, result) => { if (err) throw err; if (result.affectedRows > 0) callback(true); else callback(false); }); }
数据库执行成功后为什么节点返回0受影响的行?
最可能的解释是没有行满足UPDATE和DELETE语句中的条件。 也就是说,没有id
值等于1
。
如果条件匹配一个或多个行,则UPDATE可能会影响零行,但应用于该行的更改会导致“无变化”…也就是说,要修改的列已经分配了值。
成功执行但影响零行的UPDATE或DELETE仍被视为成功。
- 结合python烧瓶和express.js
- 简单Nodejs正则expression式:从两个string之间提取文本
- 会话密钥在Express web框架中的重要性
- 是否有任何框架在NodeJS中创build适当的REST(即超媒体)接口?
- fs.writefile只能在节点js的最后一个函数中执行
- 在RegExp#test中使用捕获组会有性能损失吗?
- 如何在node.js中使用express来更改上传path
- 如何在expressjs nodejs中嵌套REST GET请求
- 在ZIP文件stream式传输过程中,Nodejs阻止并不能处理下一个请求
错误无法读取未定义的属性“0”
我正在为我的移动应用程序构build一个nodejs服务器,并且在保存数据时遇到了问题,我可以在data.jade中显示它
在这里我的错误消息:
Cannot read property '0' of undefined at jade_debug.unshift.lineno (eval at <anonymous> (/Users/****/Documents/Node- server/node_modules/jade/lib/jade.js:160:8), <anonymous>:33:21) at eval (eval at <anonymous> (/Users/****/Documents/Node-server/node_modules/jade/lib/jade.js:160:8), <anonymous>:65:4) at res (/Users/****/Documents/Node-server/node_modules/jade/lib/jade.js:161:38) at Object.exports.render (/Users/****/Documents/Node-server/node_modules/jade/lib/jade.js:257:10) at Object.exports.renderFile (/Users/****/Documents/Node-server/node_modules/jade/lib/jade.js:293:18) at View.exports.renderFile [as engine] (/Users/Yanis/Documents/Node-server/node_modules/jade/lib/jade.js:278:21) at View.render (/Users/****/Documents/Node-server/node_modules/express/lib/view.js:76:8) at Function.app.render (/Users/****/Documents/Node-server/node_modules/express/lib/application.js:505:10) at ServerResponse.res.render (/Users/****/Documents/Node-server/node_modules/express/lib/response.js:756:7) at /Users/****/Documents/Node-server/index.js:44:9
index.js:
app.get('/:collection', function(req, res) { var params = req.params; collectionDriver.findAll(req.params.collection, function (error, objs) { if (error) { console.log("mongo db error"+error); objs = []; } else { if (req.accepts('html')) { res.render('data', {objects: objs, collection: req.params.collection}); } else { res.set('Content-Type', 'application/json'); res.send(200, objs); } } }); });
最后是我的data.jade:
#objects table(border=1) if objects.length > 0 - each val, key in object[0] th= key - each obj in objects tr.obj - each val, key in obj td.key= val
正如你可以看到我的对象是不是在data.jade“定义”,我不知道为什么。 我不知道这个问题是来自玉文件还是de .js。 你们谁都有解决scheme?
object[0]
可能应该是data.jade
objects[0]
。
- 单独函数中的HTTP请求
- 快速会话不会保存任何值
- Node.js Express REST API – 使用GET请求访问JSON url params
- 节点茉莉花没有失败时,预期
- 如何在NodeJs中使用asynchronous数据源创build可读stream?
- 正则expression式正向前取得第一个出现
- node.js + express:`sendfile`给Ajax请求给404
- replacestring中的前N个事件
- 在Express.js中使用会话MemoryStore不定义req.session
节点不会运行,只是退出代码0
好几天前我总是打电话给npm install
和调用sudo
,我试图卸载节点,并试图通过自制安装,我设法做了一个巨大的灾难,但最终它的工作。 到现在…
当我运行node app.js
或npm install
它只是不会做任何事情。
-
我尝试删除这样的相关文件。
-
我尝试使用nvm 。
-
从节点主页尝试手动安装.pkg文件。
-
再次尝试通过自制。
而且还没有运气; 然而,如果Node应用程序有编译错误,我得到的错误堆栈,但是当一切都“好”,而不是开始监听传入的连接,它只是退出代码0。
好吧,我觉得reaaaaaaaaally愚蠢后,我发现这个问题,在我的postgresqlconfiguration我有错误的数据库密码,并由于某种原因造成了这一切的混乱。 如果你低估了我是一个这样的傻瓜,你会明白吗?
OneOfOne的node debug
然后保持按下s
为我做的伎俩。
- 我有一个套接字IO连接问题
- Node.js,Express和Mongoose:自动CRUD API
- 通过Sequelize(Express / NodeJS)访问MySQL时出错
- 在node.js中的ajax post之后不会呈现HTML页面
- 将图像保存为base64,并使用path返回
- swagger-node-express:如何从swagger-ui上传文件?
- req.session不存储数据
- 尝试使用路由中的函数从MySql返回一行,并不会得到响应
- JSON输出使用Express使用Mysql
如何推动数组的索引0的元素
我有这样的情况,
我有2 array1
array1 = ["fruit","vegetables"];
和
array2 = [["apple","banana"],["tomato"]]; // index 0:represent fruit i,e (["apple","banana"]), index 1: vegetables i,e (["tomato"])
我的问题 : 我怎样才能从array1
push item
,以使我的array2
看起来像这样
[["fruit","apple","banana"],["vegetables","tomato"]];
与我可以确定index:0
作为category
。
我的 data structure
是这2个array
array1 = ["fruit","vegetables"];
AND array2 = [["apple","banana"],["tomato"]];
如果我能够得到对我有好处的key
value
对array
。
我的样本数据:
array1 = ["fruit","vegetables"]; array2 = [["apple","banana"],["tomato"]]; //expected output :[["fruit","apple","banana"],["vegetables","tomato"]];
使用Array#unshift
方法。
var array1 = ["fruit", "vegetables"], array2 = [ ["apple", "banana"], ["tomato"] ]; var array3 = array2.map(function(v, i) { // iterate over the array to generate the new array var arr = v.slice(); // copy the array arr.unshift(array1[i]) // insert element at beginning return arr; /// return generated array }); console.log(array3)
试试这个Array.map()
和Array.unshift()
。 unshift()
将数据推入数组[0]index
位置。
array1 = ["fruit","vegetables"]; array2 = [["apple","banana"],["tomato"]]; array2.map((a,i) => a.unshift(array1[i])) console.log(array2)