[解決済み] Route.get()でコールバック関数が必要だが、"object Undefined "と表示された。
2022-02-17 14:09:30
質問
Todoアプリの作成を勉強しています。 私が勉強しているサイトでは https://coderwall.com/p/4gzjqw/build-a-javascript-todo-app-with-express-jade-and-mongodb
説明書の通りに入力しました。
[app.js]
var main = require('./routes/main');
var todo = require('./routes/todo');
var todoRouter = express.Router();
app.use('/todos', todoRouter);
app.get('/', main.index);
todoRouter.get('/',todo.all);
todoRouter.post('/create', todo.create);
todoRouter.post('/destroy/:id', todo.destroy);
todoRouter.post('/edit/:id', todo.edit);
[/routes/todo.js]
module.exports ={
all: function(req, res){
res.send('All todos');
},
viewOne: function(req, res){
console.log('Viewing '+req.params.id);
},
create: function(req, res){
console.log('Todo created');
},
destroy: function(req, res){
console.log('Todo deleted');
},
edit: function(req, res){
console.log('Todo '+req.params.id+' updated');
}
};
というエラーメッセージが表示されました。
エラーです。Route.get()はコールバック関数を必要としますが、[object]を取得しました。 未定義] です。
何か見落としがあったのでしょうか?
解決方法は?
チュートリアルでは
todo.all
が返されます。
callback
オブジェクトを作成します。これは
router.get
の構文があります。
ドキュメントより
router.METHOD(path, [コールバック, ...] コールバック)
router.METHOD() メソッドは、ルーティング機能を提供します。 ここで、METHOD は GET、PUT などの HTTP メソッドの一つです。 POST などのように小文字で表記します。したがって、実際のメソッドは router.get(), router.post(), router.put(), など。
の配列を定義する必要があります。
callback
オブジェクトを
todo
ファイルにアクセスできるようにするため、適切な
callback
オブジェクトを作成します。
router
.
チュートリアルを見ていると
todo.js
の配列が含まれています。
callback
オブジェクトにアクセスします。
todo.all
):
module.exports = {
all: function(req, res){
res.send('All todos')
},
viewOne: function(req, res){
console.log('Viewing ' + req.params.id);
},
create: function(req, res){
console.log('Todo created')
},
destroy: function(req, res){
console.log('Todo deleted')
},
edit: function(req, res){
console.log('Todo ' + req.params.id + ' updated')
}
};
関連
-
[解決済み】TypeError: Router.use() はミドルウェアの関数を要求しているが、Object を取得した。
-
[解決済み】「安全なTLS接続が確立される前にクライアントのネットワークソケットが切断されました」(ノード10
-
[解決済み] エラー: nodejs の get 呼び出しで getaddrinfo ENOTFOUND が発生しました。
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み】MongoClient v3.0使用時、db.collectionは関数ではない
-
[解決済み】MongoDBのデータ/DBが見つからない
-
[解決済み】passport.js passport.initialize() ミドルウェアが使用されていません。
-
[解決済み】Heroku + node.jsのエラー(Webプロセスが起動後60秒以内に$PORTにバインドできなかった)。
-
[解決済み】POSTできない/expressを使用するとエラーが発生する
-
[解決済み] TypeError: コールバックはnodejsの関数ではありません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] リソースの読み込みに失敗しました: net::ERR_CONNECTION_REFUSED : Nodejs
-
[解決済み】Nodejs: Errorを解決する方法。ENOENT: そのようなファイルまたはディレクトリがありません
-
[解決済み】AWS STS AssumeRoleへのアクセスを可能にする方法
-
[解決済み】Passport.js - エラー: ユーザーのセッションへのシリアライズに失敗しました。
-
[解決済み】Mongooseで配列の値を更新する方法
-
[解決済み】npm 5で作成されたpackage-lock.jsonファイルはコミットするのでしょうか?
-
[解決済み] bodyParser は非推奨です express 4
-
[解決済み] Json Web Token verify() return jwt malformed
-
[解決済み] NodeJsのSequelizeでautoIncrementはどのように動作するのですか?
-
[解決済み] "致命的なエラーです。grunt "コマンドを実行すると、"Unable to find local grunt. "と表示されます。