小さな問題があります。あなたが私を助けることを願っています 私はNodeJsに天気予報プログラムを書きました。 1人が都市の天気を検索したいとき。彼らはここで検索することができ、アプリはそれらにメッセージを表示します。それが私の問題です。私はユーザーからの入力を取ることができ、私はコマンドラインでその入力を見ることができます。ここではコードです:JavaScript(Node.Js)でサーバーを介してユーザーにメッセージを表示する方法
app.post('/', function(req,res){
res.render('index');
console.log(req.body.city);
});
、これはコードの他の部分ですが、私は、ユーザーにメッセージ表示することはできません。
app.post('/', function (req, res) {
let city = req.body.city;
let url = `http://api.openweathermap.org/data/2.5/weather?q=${city}&units=imperial&appid=${apikey}`;
request(url, function (err, response, body) {
if (err) {
res.render('index', { weather: null, error: 'Error, please try again' });
} else {
let weather = JSON.parse(body);
if (weather.main == undefined) {
res.render('index', { weather: null, error: 'Error, please try again' });
} else {
let weatherText = `It's ${weather.main.temp} degrees in ${weather.name}!`;
res.render('index.ejs', { weather: weatherText, error: null });
}
}
});
});
app.listen(7000, function(){
console.log("Hello Boss \nserver is up at port => 7000");
});
注:私はこの目的のためのAPIキーを持っています。
私にはいくつか質問があります。 EJSのセットアップはありますか?私は 'express -ejs'を使ってプロジェクトを作成したと仮定しています。 'index.ejs'の関連する内容を見るのに役立ちます。ノードはエラーを出すのか?そうでない場合は、ウェブページ上で何が表示されますか(実際にレンダリングされるのは何ですか)? – ContinuousLoad
ええ、私は 'index.ejs'ファイルを持っています。私は自分ですべてのファイルを作成しました。 私はユーザーにメッセージを表示したいが、できない。私はコードを書いて、あなたはこの質問の第2部からそれを見ることができます。 – MehdiPRG
私が理解しているように、最初のコードブロックは初期テスト用です。その後、2番目のブロックに置き換えました。あれは正しいですか?ファイルを自分で作成した場合は、 'npm install -S ejs'を実行して、Node appに' app.set( "view engine"、 "ejs") 'を付けてください。私はあなたが 'index.ejs'のためのGETを持っていないことに気付きました。ユーザーが最初にそのページをどのように読み込むのですか? – ContinuousLoad