【发布时间】:2019-07-29 17:20:43
【问题描述】:
我正在构建一个 node/express 应用程序,我想通过处理 id 参数返回特定数据。
这是我的文件结构:
app.js
./src
/db/users.js
controllers
models
./tests
users.js
const users = [
{
id: 1,
email: 'sarah@gmail.com',
name: 'Sarah',
phone: 09000082
},
{
id: 2,
email: 'dklf@gmail.com',
name: 'Kelavos',
phone: 08522222
},
];
export default users;
我的模型
import users from '../db/users';
const findUser = id => users.find(x => x.id === id);
export default { findUser };
我的控制器
import userModel from '../models/user.model';
class UserController {
/**
* Get one user
* @param {object} req
* @param {object} res
*/
getUser(req, res) {
const id = parseInt(req.params.id);
console.log(`Test: ${ userModel.findUser(req.params.id) } and ${ req.params.id}`);
return res.status(201).send({
status: 'success',
data: userModel.findUser(id),
});
// return Not found and 404 for an non existing id or if id !== int
if (isNaN(id) || !id) {
return res.status(404).send({
status: 'error',
error: 'Not found',
});
}
}
}
const userController = new UserController();
export default userController;
这是我的app.js
import express from 'express';
import bodyParser from 'body-parser';
import UserController from './src/controllers/user.controller';
// set up the express app
const app = express();
// Parse incoming requests data
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
const baseUrl = '/api/v1/';
app.get(`${baseUrl}users/:id`, UserController.getUser);
export default app;
我已经在 server.js 文件中设置了端口和其他配置
如果我运行应用程序并使用 Postman 测试端点,我只会得到 status: "success"
并不是说我评论了 UserController 类的第二块 if (isNaN(id) || !id),因为 ESLint 用它警告我 Unreachable code detected
我的代码有什么问题阻止我返回给定用户的结果?
【问题讨论】: