最近才开始看node,看教材(一个上传图片的表单)的时候遇到了一个问题。
表单模板(upload.ejs)
<%= title %>
配置路由
教材(photos.js):
exports.form = function(req, res) { res.render('photos/upload', { title: 'photo uploads' }); }
教材(app.js):
app.get('/upload', photos.form); app.post('/upload', photos.submit(app.get('photo')));
自己(photos.js)
const express = require('express'); const router = express.Router(); router .get('/upload', (req, res, next) => { res.render('photos/upload',{ title: 'photo uploads' }); }) //.post('./upload', photos.submit(router.get('photo'))); module.exports = router;
自己(app.js)
var photos = require('./routes/photos'); app.use('/', photos); //处理照片提交代码 ...
在注释掉post的时候,localhost:~/upload是没有问题的,可以看到上传表单的页面,但是去掉post前面的注释的时候,报错提示submit不是一个函数,不知道这个地方怎么写.
app.post('/upload', photos.submit(app.get('photo')));
意思是点击submit后,路由定义到photo页面吧
post的链接没有[.]吧?
router .get('/upload', (req, res, next) => { res.render('photos/upload',{ title: 'photo uploads' }); }) .post('/upload', photos.submit(router.get('photo'))); //.post('./upload', photos.submit(router.get('photo')));
exports.form还是exports.from?
exports.from = function(req, res) { res.render('photos/upload', { title: 'photo uploads' }); }
soonfy
你在photos里面定义了submit这个函数了吗?