【发布时间】:2021-08-24 19:26:46
【问题描述】:
我正在做一个需要上传文本的项目。但是由于某种原因,控制权并没有转移到路由器上。另外,只有这个特定的路由器功能不起作用,路由器中的其他路由功能起作用
这是我的相关代码
这是收集数据的表格
<div class="content ui segment" id="two">
<form method="POST" action = "/documents/uploadDoc">
<h2>Name</h2>
<br>
<input class='button' type="text" id="myName" name="name">
<input type="submit" name = "Submit">
</form>
</div>
documents.js 中的路由代码:
router.post("/uploadDoc",function(req,res,next){
console.log("Uploading");
res.redirect("/documents");
});
App.js
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var dbSetup = require('./db_setup');
var firebase = require('firebase');
var bucket = require('./firebase_storage');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var courseRouter = require('./routes/course');
var documentsRouter = require('./routes/documents');
var classroomRouter = require('./routes/classroom');
var apiRouter = require('./routes/api');
const e = require('express');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
// set user
app.use(function(req, res, next) {
var user = firebase.auth().currentUser;
res.locals.user = null;
if(user) {
var users = firebase.database().ref('/users');
users.on('value', (snapshot) => {
var data = snapshot.val();
for(var rno in data) {
var em = data[rno].email;
if(em.localeCompare(user.email) == 0) {
res.locals.user = data[rno];
}
}
});
res.locals.userEmail = user;
}
res.locals.url = process.env.FIREBASE_STORAGE_URL;
next();
});
app.use('/', indexRouter);
app.use('/users', usersRouter);
app.use('/course', courseRouter);
app.use('/documents', documentsRouter);
app.use('/classroom', classroomRouter);
app.use('/api', apiRouter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error.jade');
});
module.exports = app;
单击提交按钮时,我收到 404 错误,控制台中也没有打印“上传”。请帮忙
【问题讨论】:
-
console.log 中有
Uploading吗? -
检查
documentsRouter是否被导出。 -
请不要再使用
var。使用let或const。您从require()分配的几乎所有内容都应该是const。
标签: node.js forms express http-status-code-404