为什么通过JSON.stringify转化出来的字符串创建记录会出错,而直写入内容{ id: 5, title: 'Some Title 5', body: 'Some body 5' }可以正常。
var FastLegSBase = require('FastLegS');
var FastLegS = new FastLegSBase('mysql');
var connectionParams = {
user: 'root', password: '',
database: 'warship', host: 'localhost', port: 3306
}
FastLegS.connect(connectionParams);
var callback = function(err, results) {
console.dir(err);
console.dir(results);
}
var PlayerTables = FastLegS.Base.extend({
tableName: 'player',
primaryKey: 'id'
});
var info = JSON.stringify(player.info);
PlayerTables.create(info, callback);
为什么我通过JSON.stringify转化出来的字符串创建记录会出错,而直写入内容{ id: 5, title: 'Some Title 5', body: 'Some body 5' }可以正常。
回复 (8)
M
有错误提示,看不懂
E:\Server\node_modules\FastLegS\lib\utils.js:30
return _.include(columns, field.split('.')[0]);
^
TypeError: Object 0 has no method 'split'
at fieldIsValid (E:\Server\node_modules\FastLegS\lib\utils.js:30:37)
at E:\Server\node_modules\FastLegS\lib\utils.js:92:16
at Function._.each._.forEach (E:\Server\node_modules\FastLegS\node_modules\underscore\underscore.js:81:22)
at _.(anonymous function) [as each] (E:\Server\node_modules\FastLegS\node_modules\underscore\underscore.js:1069:39)
at validFields (E:\Server\node_modules\FastLegS\lib\utils.js:91:15)
at E:\Server\node_modules\FastLegS\lib\adapters\mysql\statements.js:83:17
at Array.map (native)
at Function._.map._.collect (E:\Server\node_modules\FastLegS\node_modules\underscore\underscore.js:97:56)
at buildInsertFields (E:\Server\node_modules\FastLegS\lib\adapters\mysql\statements.js:82:14)
at Object.exports.insert (E:\Server\node_modules\FastLegS\lib\adapters\mysql\statements.js:36:16)
M
引用 llill干嘛要调用JSON.stringfy转换成字符串? 如果create的参数要的是JSON object, 你放一个string, 当然会出错.
create的参数要的应该就是一个json string我试过输入字符串可以正常运行。
M
通过JSON.stringify转化出来的字符串同{ id: 5, title: 'Some Title 5', body: 'Some body 5' }有什么区别?
L
干嘛要调用JSON.stringfy转换成字符串? 如果create的参数要的是JSON object, 你放一个string, 当然会出错.
L
L
TypeError: Object 0 has no method 'split' 的意思是,__field__变量没有一个叫__split__的方法。 __split__只有字符串才有的,而此时的__field__是一个数值型。
这个错误有可能是__FastLegS__模块的Bug,也有可能是因为其他地方的输入不正确而引发的。
L
引用 leizongminTypeError: Object 0 has no method 'split' 的意思是, field 变量没有一个叫 split 的方法。 split 只有字符串才有的,而此时的 fie...
我看了一下__FastLegS__模块的使用方法,你的代码中PlayerTables.create(info, callback); __create()__的第一个参数应该是一个__Object__或者__Array__的,而此时你的__info__是一个字符串,并没有按照规定来调用。
M
参与回复
登录后即可参与回复。登录