通过节点将JSON-Objekt传递到MYSQL列

时间:2019-07-01 12:33:47

标签: mysql node.js json

目前,我正在尝试用节点填充MySQL数据库。
数据存储在一个对象中,例如:

insertObj:

{"textField":"testabc","checkBox":false,"dropDown":"1"}

我的SQL查询:

"INSERT INTO nodetest (textField,checkBox,dropDown) VALUES('"+insertObj.textField+"','"+insertObj.checkBox*1+"','"+insertObj.dropDown+"')"

基本上,我只想跳过该对象,并使数据库用对象本身的正确信息填充正确的列。

不幸的是,除了MySQL,我不能使用其他任何数据库,但是mongoDB允许这样的事情:

dbo.collection("nodeTest").insertOne(insertObj, function(err,res) {
            if(err) throw err;
            console.log("document inserted");
            db.close();
        })

使用MySql数据库是否可以实现类似的目的?通过脚本制作Mabye吗?

1 个答案:

答案 0 :(得分:0)

您可以使用sequelize ORM。这里是实现您的结果的步骤

1。安装续集

npm install --save sequelize

2。安装Mysql方言

npm install --save mariadb or npm install --save mysql2 depending on your server

3。建立连接

const Sequelize = require('sequelize');

const sequelize = new Sequelize('database', 'username', 'password', 
{
host: 'localhost',
  dialect: // one of 'mysql' | 'mariadb' | 'postgres' | 'mssql'
});

您可以通过以下方式测试连接:

sequelize.authenticate().then(() => {
console.log('Connection has been established successfully.');}).catch(err => {
console.error('Unable to connect to the database:', err);});

4。为表格建模

const Model = Sequelize.Model;
class Classname extends Model {}
Classname.init({
textField: {
type: Sequelize.STRING,
allowNull: false},
checkBox: {
type: Sequelize.BOOLEAN
// allowNull defaults to true
},dropDown: {
type: Sequelize.STRING
// allowNull defaults to true
}}, 
{sequelize,modelName: 'modelname'
});

5。然后您可以做

Classname.create({"textField":"testabc","checkBox":false,"dropDown":"1"}).then(data => {
console.log(data);
});

我希望它能解决您的问题。