0
私はexpressJsのAPIからデータを取得しようとしています。私は '要求'を使用しています。私はユーザーが探している映画のタイトルを選択できる形式でリクエストを送信したいと思います。私はなぜreq.body.titleが空であるのか分かりません。私はreq.params.titleでも試みたが、任意の助けexpress js、req.body bodyParserが空または未定義
ため
おかげで動作していない、これはsearch.ejsファイル
<div class="container">
<div class="row">
<div class="col-md-4">
<form action="/search" method="GET">
<div class="form-group">
<label for="">Keyword to search</label>
<input class="form-control" type="text" placeholder="e.g. Harry Potter" name="lang">
</div>
<div class="form-group">
<label for="">Keyword to search</label>
<input class="form-control" type="text" placeholder="e.g. Harry Potter" name="title">
</div>
<div class="form-group">
<input type="submit" class="btn btn-primary">
</div>
</form>
</div>
<div class="col-md-8">
<p>title</p>
<p> <% film.forEach((singleMovie) => { %>
<p> <%= singleMovie.title %></p>
<% }) %> </p>
</div>
</div>
と、これはapp.jsであります
名前titleの入力テキストフィールドの値を変数filmNameに渡したいとしたら、ユーザーは検索結果と同じページにリダイレクトされます私は、入力値を得ることができない理由を私は知らない
//APP VARIABLES AND IMPORTING
var express = require('express');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var request = require('request');
var app = express();
app.set('view engine', 'ejs');
app.use(express.static('public'));
app.use(bodyParser.urlencoded({extended: true}));
mongoose.connect('mongodb://localhost/film_database', {useMongoClient: true});
mongoose.Promise = global.Promise;
//BASIC ROUTE
app.get('/', (req, res) => {
res.render('index');
});
app.get('/search', (req, res) => {
var filmName = req.body.title; => this should return the input text
console.log(filmName);
var baseAPIAddress = "https://api.themoviedb.org/3"
var searchAPI= "/search/movie?api_key={my_api_key}&language=fr&query=" + filmName + "&include_adult=false"
var searchRequest = baseAPIAddress + searchAPI;
var film = {};
request(searchRequest, (err, resp, body) => {
if (!err && res.statusCode == 200) {
var film = JSON.parse(body);
var titleArray = film['results']
res.redirect('search', {film: titleArray});
} else {
console.log('err is: ' + err);
}
});
});
//GET => index.js => /search
///SERVER
app.listen(3000,() => {
console.log('SERVER IS RUNNING AT LOCALHOST://3000');
d});
ページの右側の部分でsが、私はさまざまな方法を試みたが、動作していません。私はデータを変更したくないのでGETが正しいと思います。
ありがとうございます!今働いている! :) – aspnet82
これは受け入れられた回答としてマークしてください。 – Himanshu
確かに私はしました: – aspnet82