###前提・実現したいこと
nodeのexpressでpostした内容をJson形式で表示するサンプルプログラムを作っていますが、
値を入力後、postしても値が表示されず、コンソールに以下のようなエラーメッセージが表示されます。
どのように対処したら良いでしょうか。
###発生している問題・エラーメッセージ
Resource interpreted as Document but transferred with MIME type application/json: "http://localhost:3000/articles".
###該当のソースコード
js
1// server.js 2// server.jsからroute.jsを呼び出しています 3 4// expressの読出し 5var express = require("express"); 6var app = express(); 7 8// morganの読出し 9var morgan = require("morgan"); 10app.use(morgan("dev")); 11 12// bodyParserの読出し 13var bodyParser = require("body-parser"); 14app.use(bodyParser.urlencoded({ extended: true })); 15app.use(bodyParser.json()); 16 17// 簡易ブログ作成 18var router = require("./routes/route")(express); 19app.use("/", router); 20 21app.listen(3000, function() { 22 console.log("Running on port 3000"); 23}); 24
js
1// 入力した値を代入するための変数 2var articles = []; 3 4module.exports = function(express) { 5 6 var router = express.Router(); 7 8// postされた値を受け取り/articlesリダイレクト表示させる 9 router.route("/articles") 10 .get(function(req, res) { 11 res.json(articles); 12 }).post(function(req, res) { 13 articles.push(req.boby); 14 res.redirect("/articles"); 15 }); 16 17// put、deleteは未実装 18 router.route("/articles/:id") 19 .get(function(req, res) { 20 21 }).put(function(req, res) { 22 23 }).delete(function(req, res) { 24 25 }); 26 27// /newで入力フォームを表示する 28 router.get("/new", function(req, res) { 29 res.send('<form method="post" action="/articles">\ 30 <input type="text" placeholder="タイトル" name="title">\ 31 <input type="text" placeholder="投稿者" name="author">\ 32 <textarea placeholder="記事内容" name="body"></textarea>\ 33 <button type="submit">投稿する</button>\ 34 </form>'); 35 }); 36 return router; 37};
###試したこと
postメソッド内に以下のjsonヘッダの情報を入れてみましたが、
見当違いらしく、解決に至りませんでした、
js
1res.header('Content-Type', 'application/json; charset=utf-8')
###補足情報(言語/FW/ツール等のバージョンなど)
node v6.11.0
express@4.15.3
body-parser@1.17.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/18 14:20
2017/07/19 01:56