从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);
祝你好运!