带有 Sequelize 的 Node.js 上的 SQL Server 2008

Mar*_*rco 4 javascript sql-server node.js sequelize.js

我是新来的 !

我正在尝试使用 sequelize 对 MS SQL Server2008 进行查询,但出现此错误:

未处理的拒绝 SequelizeDatabaseError:无效的列名“id”。在 Query.formatError (C:\xampp\htdocs\Lavori\Bit_Sense\API_BS\node_modules\s equelize\lib\dialects\mssql\query.js:217:10) 在 Request.userCallback (C:\xampp\htdocs\Lavori \Bit_Sense\API_BS\node_module s\sequelize\lib\dialects\mssql\query.js:66:25) 在 Request.callback (C:\xampp\htdocs\Lavori\Bit_Sense\API_BS\node_modules\te dious\lib\request .js:30:27) 在 Connection.STATE.SENT_CLIENT_REQUEST.events.message (C:\xampp\htdocs\Lavo ri\Bit_Sense\API_BS\node_modules\tedious\lib\connection.js:283:29) 在 Connection.dispatchEvent (C:\xampp\htdocs\Lavori\Bit_Sense\API_BS\node_mo dules\tedious\lib\connection.js:752:59) 在 MessageIO。(C:\xampp\htdocs\Lavori\Bit_Sense\API_BS\node_modul es\tedious\lib\connection.js:685:22) 在 MessageIO。在 Socket 的 MessageIO.eventData (C:\xampp\htdocs\Lavori\Bit_Sense\API_BS\node_modules\tedious\lib\message-io.js:58:21) 处发出 (events.js:104:17)。(C:\xampp\htdocs\Lavori\Bit_Sense\API_BS\node_modules\tedious\lib\message-io.js:3:59) at Socket.emit (events.js:107:17) at readableAddChunk (_stream_readable.js: 163:16) 在 Socket.Readable.push (_stream_readable.js:126:10) 在 TCP.onread (net.js:538:20)

我已经安装了这个模块: - sequelize ; - 乏味;

我在连接上没有问题,只有这个查询:

db.KEY_ARTI.findAll({
  where:{
	      CACODICE: cacodice
	    }
	}).then(function(data) {
		res.send(data);
	});
Run Code Online (Sandbox Code Playgroud)

我能做什么 ?我没有任何名为 id 的列

这是我的表:

var Sequelize = require('sequelize');
var settings = global.settings.databases.DATABASE;
var errors = global.errors;
var utilities = global.utilities; 

var sequelize = new Sequelize(settings.schema, settings.username, settings.password, {
      dialect: settings.dialect,
      host: settings.host,
	  port: settings.port, /* BISOGNA USARE LA DYNAMIC PORT */
      logging: function (str) {
          if(settings.log)
            console.log("querylog: "+str.replace("Executing (default):", "") );
      },
    });

sequelize.authenticate().then(function(err) {
    if (!!err) {
      console.log('Database '+settings.schema+' Connection Error:', err)
    } 
    else {
      console.log('Database '+settings.schema+' Connected')
    }
});

exports.sequelize = sequelize;

/*
 * KEY_ARTI
 */
exports.KEY_ARTI = sequelize.define('KEY_ARTI', {
	CACODICE: Sequelize.CHAR(20),
	CADESART: Sequelize.CHAR(40),
}
Run Code Online (Sandbox Code Playgroud)

Jan*_*ier 5

默认情况下,sequelize 会添加一个名为 id 的主键,如果你自己什么都不做。

sequelize.define('model', {}); // Adds an id key

sequelize.define('model', {
  name: {
    primaryKey: true
    type: Sequelize.STRING
  }
}); // Doesn't add an id, because you already marked another column as primary key
Run Code Online (Sandbox Code Playgroud)

也可以有一个没有主键的模型,但我不建议这样做