目前,我正在尝试用节点填充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吗?
答案 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);
});
我希望它能解决您的问题。