从JSON发布数据中提取对象

从网页上,我发送JSON文件到nodeJS服务器。 我想在服务器端将该JSON文件分配给对象并在控制台中打印。 尽pipe我在互联网上阅读了很多东西,并尝试了很多,但我决定写信求助。

这是我试过这个:

index.html文件:

<form action="/" enctype="multipart/form-data" method="post" name="fileinfo"> <label>File to stash:</label> <input type="file" name="file" required /> <input type="submit" value="Stash the file!" /> </form> </script> 

通过这个文件我发送一个有效的JSON文件。

这里是服务器端代码:

 var http = require("http") var express = require("express") var url = require("url") var fs = require("fs") var bodyParser = require('body-parser'); var app = express(); app.use(bodyParser.urlencoded()); app.use(bodyParser.json()); app.get('/', function(req, res) { res.sendFile(__dirname + '/index.html'); }); app.post('/', function(request, response){ console.log(request.body); // your JSON }); app.listen(80); console.log('Server is listening ... ') 

这里是JSON文件的内容:

 { "head":{ "person":{ "first name": "Radoslav", "second name": "Krasinirov", "last-name": "Marinov" } } } 

当我把文件加载到html表单中并Stash the file! ,在服务器上,我在控制台中得到这个消息:

{}

相反,我想获得文件内容。 如何获取JSON文件string?

您正在发送请求中的内容types表单,同时使用body-parser.json() ,它仅在内容types为application/json的情况下才在请求中设置主体字段。

要么更改youbrequest中的内容types标头,要么使用适合的正文parsing器

我认为这个问题是由于express express body-parser不能接受multipart/form-data内容types,并且在这里首先被解决(完全放肆),然后我们在这里得到一个简短的问题和答案。

你最终需要multer ,这是你的代码将如何。

 var multer = require('multer')().single(); app.use(multer); 

祝你好运!