我是新來的javascript後端,我目前正在學習使用node.js,express.js,sequelize.js和MySQL作爲我的數據庫來構建一個RESTful API。我已經成功構建了基本的Tasks API作爲測試。我正在尋找反饋,看看我是否正確地做到了這一點,只要在一個控制器中使用JavaScript最佳實踐即可。任何反饋將不勝感激。查看我的API控制器
當前邏輯:用戶可以擁有多個任務
一切工作正常。我正在使用Passport.js中的JWT策略對用戶進行身份驗證。我在路由器級驗證它們,然後在允許更新或刪除它們自己的記錄之前,通過userid在db中對它們的記錄進行雙重檢查。不管怎麼說,這裏是控制器:
'use strict';
var jwt = require('jsonwebtoken');
var config = require('../config'),
db = require('../services/database'),
Task = require('../models/task');
var TaskController = {};
// GET ALL Tasks
TaskController.get = function (req, res) {
if (!req.user.id) {
res.json({ message: 'You are not authorized.' });
} else {
db.sync().then(function() {
return Task.findAll({ where: { userid: req.user.id } }).then(function (result) {
res.status(202).json(result);
});
});
}
}
// POST ONE Task
TaskController.post = function (req, res) {
if (!req.body.task) {
res.json({ message: 'Please provide a task to post.' });
} else {
db.sync().then(function() {
var newTask = {
userid: req.user.id,
task: req.body.task
};
return Task.create(newTask).then(function() {
res.status(201).json({ message: 'Task Created!' });
});
});
}
}
// PUT ONE Task
TaskController.put = function (req, res) {
if (!req.body.task) {
res.json({ message: 'Please provide a task to update.' });
} else {
db.sync().then(function() {
// Find task by task id and user id
Task.find({ where: { id: req.params.id, userid: req.user.id } })
.then(function (task) {
// Check if record exists in db
if (task) {
task.update({
task: req.body.task
}).then(function() {
res.status(201).json({ message: 'Task updated.' });
});
} else {
res.status(404).json({ message: 'Task not found.' });
}
});
});
}
}
// DELETE ONE Task
TaskController.delete = function (req, res) {
if (!req.params.id) {
res.json({ message: 'Please provide a task to delete.' });
} else {
db.sync().then(function() {
Task.find({ where: { id: req.params.id, userid: req.user.id } })
.then(function (task) {
if (task) {
task.destroy({ where: { id: req.params.id } })
.then(function() {
res.status(202).json({ message: 'Task deleted.' });
});
} else {
res.status(404).json({ message: 'Task not found.' });
}
});
});
}
}
module.exports = TaskController;
Stack Overflow不是代碼審查平臺。這裏不要問這樣的問題。您可以在此頁面的底部找到代碼審查堆棧交換。你應該刪除這個問題並且在那裏問。 – Rob
這是一個題外話題?我要求有經驗的程序員檢查我的代碼並指出我可能犯的任何錯誤。如果這不是正確的平臺,那麼請提出一些你喜歡的建議。謝謝 –
您正在徵求意見的反饋意見和最佳實踐。你不會問你說過的代碼中的錯誤。這些都是脫節主題,如幫助中心中所述。 – Rob