bugfix> javascript > 投稿

私はバックエンド開発とajaxを始めたばかりです。 node.js、express、およびejsを使用しています。私はいくつかのデータを投稿し、ajaxを使用して値を返そうとしています。 404エラーが発生し続けますが、理由はわかりません。また、エクスプレスジェネレーターを使用してプロジェクトを作成し、ボディパーサーもインストールしました。

これは、index.ejsファイルにあるajaxリクエストです。これは、ヘッダーのスクリプトタグ内にあります。

function post() {
    $.ajax({
        type: "POST",
        url: "/test",
        data: 'TEST',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
    }).done(function (data) {
        console.log("Did it work? "+ data);
    });
}

ボタンを押すとajaxが実行され、400の悪いリクエストが返されます。 index.jsファイルの内容と関係があると思います。また、エクスプレスジェネレーターがサーバーを作成した方法かもしれません。繰り返しますが、私はこれが初めてなので、ここでの入力は素晴らしいでしょう。

index.js:

var express = require('express');
var router = express.Router();
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json()); // support json encoded bodies
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index');
});
app.post('/test', function(req, res) {
    console.log(req.body);
    res.type('json');
    res.send("hi");
  });
module.exports = router;

インデックスページがejsを使用してレンダリングされているためでしょうか?

前もって感謝します!


更新:400修正、404を取得

400エラーは、文字列ではなくオブジェクトを送信しようとしたために発生しました。現在、404エラーが発生しています。要求されたとおり、私のファイル構造は以下の通りです。

 .
  ├── app.js
  ├── bin
  │   └── www
  ├── package.json
  ├── public
  │   ├── images
  │   ├── javascripts
  │   └── stylesheets
  │       └── style.css
  ├── routes
  │   ├── index.js
  │   └── users.js
  └── views
      ├── error.ejs
      ├── index.ejs
      └── layout.ejs
  7 directories, 9 files

私はまだこれを把握しようとしており、ジェネレーターがファイルを作成してくれました。私の理解では、binフォルダー内のwwwファイルは起動スクリプトです。 app.jsファイルは他のすべてを呼び出します。私はindex.jsファイル内にpostメソッドを配置しようとしていますが、そこに行くべきか、それともapp.jsファイルに入れるべきかは正確にはわかりません。他のファイルがどのように見えるかなど、他の情報を知る必要がある場合は、喜んでお見せします。