node.js - 404 错误快速路由
问题描述
我无法弄清楚这个简单的路由任务哪里出错了。当我转到 localhost:3030/staff 时,我收到“Cannot GET /staff”和 404 错误。
这是我的设置。
应用程序.js:
const express = require('express');
const app = express();
const port = process.env.PORT || 3030;
const staffRouter = require('./routes/staffrouter.js');
app.use('/static', express.static(__dirname + './public'));
app.use('./staff', staffRouter);
app.get('/', function(req, res) {
res.render('index.pug');
});
app.listen(port);
我已经尝试在我的 GET/POST 请求中使用路径“/staff”,但这不起作用,而且根据我正在做的教程,它应该如何工作。我真的被困住了。
/routes/staffrouter.js:
var express = require('express');
var router = express.Router();
const staff = require('../staff').staff;
const urlEncoded = (express.urlencoded({ extended: true }));
router.get('/', function(req, res, next) {
res.render('staff.pug', {
deptOptions: staff.populateSelectors('department'),
posOptions: staff.populateSelectors('position'),
empArray: staff.readWriteJSON()
});
});
// Add new staff obj
router.post('/', urlEncoded, function(req, res, next) {
let sObj = req.body;
let dataArray = staff.readWriteJSON();
//console.log('data:', data);
dataArray.push(new staff.Employee(
sObj.fName,
sObj.lName,
sObj.staffNum,
sObj.department,
sObj.position,
sObj.email,
sObj.phone
));
staff.readWriteJSON(dataArray)
res.render('../views/staff.pug', {
deptOptions: staff.populateSelectors('department'),
posOptions: staff.populateSelectors('position'),
empArray: staff.readWriteJSON()
});
});
module.exports = router;
解决方案
错误的范围更改顺序
app.use('/static', express.static(__dirname + './public'));
const staffRouter = require('./routes/staffrouter.js');
推荐阅读
- python - Dask between_time 是否存在?
- kotlin - 如何在 Kotlin 中减去 2 个浮点数
- monaco-editor - Monarch语言中的括号不起作用/不折叠
- c# - 为什么只使用一个 DataTrigger?
- groovy - 在 Groovy 脚本中配置 Jenkins 更新通道以实现稳定发布?
- c++ - 将重载的构造函数传递给类之间的函数
- react-native - 可以使用 react native 和 expo 运行代码,但不能使用 gradle assembleRelease 构建 apk
- java - 当我缺少包中的最后一级目录时,为什么我可以编译它?
- linux - 如何自动回答否以尝试使用解压缩命令继续脚本
- java - 为什么 Java varags method(int[] ...x) 接受这个“新的 int[1][1]”二维数组类型作为参数?