node.js - express 4.x版本post请求

浏览:21日期:2022-09-14

问题描述

最近才开始看node,看教材(一个上传图片的表单)的时候遇到了一个问题。表单模板(upload.ejs)

<h1><%= title %></h1><form action='post' enctype='multipart/form-data'> <input type='text' name='photo[name]' placeholder='your name'> <input type='file' name='photo[image]'/> <input type='submit' value='upload'/></form>

配置路由

教材(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页面吧

问题解答

回答1:

你在photos里面定义了submit这个函数了吗?

回答2:

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

相关文章: