所以我正在研究node和Express中的一个项目,虽然我已经有了一些经验并且已经通过其他一些框架,我仍然试图找出最好的方法将其中两个连接在一起。
我使用POSTGRES设置模型和数据库来保存ID和连接表。
这是我到目前为止所做的:
app.get('/api/users/:id', function(req, res) {
User.findOne({ where: { phone: req.params.id }}).then(function(user) {
if (!user) {
//////// Create a user
var newUser = User.build({ phone: req.params.id});
newUser.save().then(function(user) {
var json = userJson(user);
res.json(json)
}).catch(function(err) {
res.json(err);
});
} else {
//////// Existing user
var json = userJson(user);
json.events = []
Event.findAll({ where: { user_id: user.id }}).then(function(events) {
for( var i in events) {
json.events.push({
id: events[i].dataValues['id'],
hosting: events[i].dataValues['hosting'],
attending: attending[i].dataValues['attending'],
invites: events[i].dataValues['invites']
})
}
res.json(json)
})
}
})
});
app.get('/api/events/:id', function(req, res) {
Event.findOne({ where: { id: req.params.id }}).then(function(event) {
// console.log('-------------',event);
var item = {
id: event.dataValues['id'],
event_name: event.dataValues['event_name'],
event_at: event.dataValues['event_at'],
address: event.dataValues['address'],
description: event.dataValues['description'],
image: event.dataValues['image'],
categories: []
}
res.json(item);
})
});
app.post('/api/events', function(req, res) {
var newEvent = Event.build({
user_id: req.body.user_id,
event_name: req.body.event_name,
event_at: req.body.event_at,
address: req.body.address,
description: req.body.description,
image: req.body.image
});
newEvent.save().then(function(event) {
res.redirect('/api/events/'+event.id);
}).catch(function(err) {
// console.log(err);
return res.json({error: 'Error adding new event'});
})
});
var bcrypt = require('bcrypt-nodejs');
module.exports = function(sequelize, DataTypes) {
return sequelize.define('event_hostings', {
user_id : DataTypes.INTEGER,
event_id : DataTypes.INTEGER
}
);
}
我知道有一种方法可以将两者连接在一起,但我正在尝试找出在USER创建EVENT时将两者互连的最佳方法,并且能够让它连接回用户并识别他们是创造者。
任何建议或指出我正确的方向将不胜感激!提前谢谢!