Express 更新时追加值的续集
我试图使用Express 更新时追加值的续集,express,sequelize.js,Express,Sequelize.js,我试图使用.update方法将值附加到我的一个对象字段,但我的当前代码将字段(组织.成员)中的值替换为该字段在post方法期间捕获的新值。我在文档中查找附加值的方法(逗号分隔),但我没有看到任何与将值附加到对象属性相关的内容 这是我的路线: var express = require('express'); var appRoutes = express.Router(); var passport = require('passport'); var localStrategy = req
.update
方法将值附加到我的一个对象字段,但我的当前代码将字段(组织.成员
)中的值替换为该字段在post方法期间捕获的新值。我在文档中查找附加值的方法(逗号分隔),但我没有看到任何与将值附加到对象属性相关的内容
这是我的路线:
var express = require('express');
var appRoutes = express.Router();
var passport = require('passport');
var localStrategy = require('passport-local').Strategy;
var models = require('../models/db-index');
appRoutes.route('/settings')
.get(function(req, res){
models.Organization.find({
where: {
organizationId: req.user.organizationId
}, attributes: ['organizationName','admin','members']
}).then(function(organization){
res.render('pages/app/settings.hbs',{
user: req.user,
organization: organization
});
})
})
.post(function(req, res, user){
models.Organization.update({
members: req.body.addMember
},{ where: {
organizationId: req.user.organizationId
}}).then(function(){
console.log("User added to Organization");
res.redirect('/app/settings');
});
});
以下是组织模式:
module.exports = function(sequelize, DataTypes) {
var Organization = sequelize.define('organization', {
organizationId: {
type: DataTypes.INTEGER,
field: 'organization_id',
autoIncrement: true,
primaryKey: true
},
organizationName: {
type: DataTypes.STRING,
field: 'organization_name'
},
admin: DataTypes.STRING,
members: DataTypes.STRING
},{
freezeTableName: true,
classMethods: {
associate: function(db) {
Organization.hasMany(db.User, {foreignKey: 'user_id'});
},
},
});
return Organization;
}
表格如下:
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="annotation-form">
<h2>Add User</h2>
<form action="/app/settings" method="post">
<input name="addMember" type="text" value="">
<button type="submit">Add User</button>
</form>
<h2><u>Additional Users</u></h2>
{{#each organization}}
<li>{{this.members}}</li>
{{else}}
<p>No additional users</p>
{{/each}}
</div>
</div>
</div>
我有一个类似的问题,在我的例子中,我使用的是mySQL和底层的
CONCAT
函数。
我不使用+
连接字符串的原因是,如果字符串包含新行,则可能会出现SQL语法错误
models.Organization.update({
members: Sequelize.fn('CONCAT', Sequelize.col("members"),req.body.addMember)
},{ where: {
organizationId: req.user.organizationId
}}).then(function(){
console.log("User added to Organization");
res.redirect('/app/settings');
});
models.Organization.update({
members: Sequelize.fn('CONCAT', Sequelize.col("members"),req.body.addMember)
},{ where: {
organizationId: req.user.organizationId
}}).then(function(){
console.log("User added to Organization");
res.redirect('/app/settings');
});