我有一个nodejs Web应用程序和一个mocha单元测试用例。如何使用sails-disk mysql数据适配器将包含lastname的名称更新为null?对于mysql查询字符串就像$ update user SET lastname =' aaa'其中lastname为NULL;
it('Should get user.', function (done) {
request(sails.hooks.http.app)
.update('/user')
.send({lastname: null})
.expect(201)
.end(function (err, res) {
console.log(res.body;)
done();
});
});
经过几次尝试,我发现问题是mysql无法通过查询获取数据
it('should create a User', function (done) {
request('/user')
.send({ name: 'aaaa' })
.expect(201)
.end((err, res) => {
console.log(res.body);
done();
});
});
it('should get a User', function (done) {
request('/user')
.query({ name: 'aaaa' })
.end((err, res) => {
console.log(res.body);
done();
});
});
it('should get a User', function (done) {
request('/user')
.query({ lastname: null })
.end((err, res) => {
console.log(res.body);
done();
});
});
it('should get a User', function (done) {
request('/user')
.send({ lastname: null })
.end((err, res) => {
console.log(res.body);
done();
});
});
{ name: 'aaaa',
lastname: null,
id: 2 }
✓ should create a User (62ms)
[ { name: 'aaaa',
lastname: null,
id: 2 }]
✓ should get a User
[]
✓ should get a User
[]
✓ should get a User
答案 0 :(得分:0)
..使用sails-disk mysql数据适配器
Sails-disk adapter不适用于MySQL。而不是这个,我们有一个sails-mysql
要更新模型,您应该这样做:
User.update({lastname: "null"}, {lastname: new_user_name}).exec((err, updated_user) => {
if (err) return res.serverError();
else if(!updated_user) return res.notFound("User doesn't exist!!!");
else return res.ok();
});
update()函数的第一个parmetr是搜索的标准。 update()函数的第二个参数是用于更新记录的数据。 最后一个是回调。
以下是更多说明:update()