最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

express.json()是将请求对象识别为JSON对象?

运维笔记admin19浏览0评论

express.json()是将请求对象识别为JSON对象?

express.json()是将请求对象识别为JSON对象?

app.js

var express = require('express');
var cookieParser = require('cookie-parser');
var session = require('express-session');

var helloRouter = require('./routes/hello');

var app = express();
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

var session_opt={
  secret:'keyboard cat',
  resave:false,
  saveUninitialize:false,
  cookie:{maxAge:60*60*1000}
};
app.use(session(session_opt));
app.use('/hello',helloRouter);

module.exports = app;

hello.js

var express= require('express');
   var router = express.Router();

   router.get('/',(req,res,next)=>{
    var msg = 'write something';
    if(req.session.message != undefined){
        msg = "Last Message"+req.session.message;
    }
    var data={
        title:'Hello',
        content:msg
    };
    res.render('hello',data);
});

router.post('/post',(req,res,next)=>{

    console.log(req.body);


    var msg = req.body['message'];
    req.session.message=msg;
    var data={
        title:'Hello!',
        content:"Last Message"+req.session.message
    };
    res.render('hello',data);
});

module.exports = router;

hello.ejs

<form action="/hello/post" method="post">
     <input type="text" name="message">
     <input type="submit" value="Submit">
</form>

我理解express.json()将从this做什么(No.5 a)然后我在hello.js中使用console.log(req.body)调试上面的编码

当我提交表格时,显示了这一点

使用express.json()

[Object: null prototype] { message: 'ABC' }

不使用express.json()(我从app.js中删除了它)

[Object: null prototype] { message: 'ABC' }

所以没有什么不同。使用express.json()的目的是什么。即使我不知道我对express.json()的理解是否正确。

回答如下:

您没有提交JSON,因此它什么都不做。

你的req.body来自express.urlencoded(),它从HTML表单解析身体。

发布评论

评论列表(0)

  1. 暂无评论