下面是我的服务器端index.js:
import Express from 'express';
import fileUpload from 'express-fileupload';
import http from 'http';
import TestRouter from "./TestRouter.js";
let app = new Express();
let httpServer = http.createServer(app);
app.use(Express.json());
app.use(fileUpload({debug:true}));
app.post('/test/uploadFile',async (req, res, next) => {
console.log(req.body);
Object.keys(req.files).forEach(key=>{
console.log("Name:"+req.files[key].name);
console.log("MIMETYPE:"+req.files[key].mimetype);
console.log("File size:"+req.files[key].size);
console.log("==================================");
});
res.status(200).end();
});
let portNo=8080;
httpServer.listen(portNo, () => {
console.log('Express server is running on localhost:'+portNo);
})
工作正常。当我将代码更改为:
import Express from 'express';
import fileUpload from 'express-fileupload';
import http from 'http';
import TestRouter from "./TestRouter.js";
let app = new Express();
let httpServer = http.createServer(app);
app.use(Express.json());
app.use(fileUpload({debug:true}));
app.use('/test', TestRouter);
let portNo=8080;
httpServer.listen(portNo, () => {
console.log('Express server is running on localhost:'+portNo);
})
TestRouter.js源代码如下:
import Express from 'express';
let wrapper = function () {
const router = Express.Router();
router.post('/:action', async (req, res, next) => {
console.log(req.params.action);
switch (req.params.action) {
case "uploadFile":
console.log("hi");
res.status(200).end();
break
default:
next();
break
}
});
return router;
}
export default wrapper;
我发现TestRouter没有被触发。为什么?