通过 sails-disk mysql 适配器或 nodejs 应用程序中的 mysql 在数据库字段中查询具有 'null' 值的一些数据

Query somedata with 'null' value in database field by sails-disk mysql adapter or mysql in nodejs application

我有一个 nodejs 网络应用程序和一个 mocha 单元测试用例。如何使用 sails-disk mysql 数据适配器将包含姓氏的名称更新为 null?对于 mysql 查询字符串类似于 $update user SET lastname ='aaa' where lastname is 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

..by using sails-disk mysql data adapter

Sails-disk 适配器不适用于 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()函数的第一个参数是搜索条件。 update() 函数的第二个参数是更新记录的数据。 最后一个是回调。

这里有更多的描述:update()