こんにちは、私はNodejsを初めて使用しています。ノードのデバッガーを使用してサーバーの例をデバッグするときに問題が発生します。ノードでrequireキーワードを使用しても変数が定義されていません
これはserver.js
の一部です。このファイルは、私が検査しようとしているファイルです。
// Babel ES6/JSX Compiler
require('babel-register');
var path = require('path');
var express = require('express');
var bodyParser = require('body-parser');
var compression = require('compression');
var favicon = require('serve-favicon');
var logger = require('morgan');
var async = require('async');
var colors = require('colors');
var mongoose = require('mongoose');
私はnode debug server.js
コマンドにより、端末上でこのファイルをデバッグました。 上記の変数path
を調べようとしたところ、これがあります。私はexpress
を検査しようとしたとき
debug> path
{ resolve: [Function],
normalize: [Function],
isAbsolute: [Function],
join: [Function],
relative: [Function],
_makeLong: [Function],
dirname: [Function],
basename: [Function],
extname: [Function],
format: [Function],
parse: [Function],
sep: '/',
delimiter: ':',
posix: [Circular],
win32:
{ resolve: [Function],
normalize: [Function],
isAbsolute: [Function],
join: [Function],
relative: [Function],
_makeLong: [Function],
dirname: [Function],
basename: [Function],
extname: [Function],
format: [Function],
parse: [Function],
sep: '\\',
delimiter: ';' } }
はしかし、デバッガは、それが定義されていないと言っ保持します。これらの変数が定義されていない理由は
など、debug> express
ReferenceError: express is not defined
at repl:1:1
at Object.exports.runInContext (vm.js:44:17)
at Interface.controlEval (_debugger.js:952:21)
at bound (domain.js:280:14)
at REPLServer.runBound [as eval] (domain.js:293:12)
at REPLServer.<anonymous> (repl.js:412:12)
at emitOne (events.js:77:13)
at REPLServer.emit (events.js:169:7)
at REPLServer.Interface._onLine (readline.js:210:10)
at REPLServer.Interface._line (readline.js:549:8)
bodyParser
、compression
のような他の変数に同じである誰かが、私はrequire()
を使用した後でも説明していただけますか?私がnode server.js
で実行すると、server.js
は正常に動作します。だから私は、デバッガが、間違いなく使われているいくつかの変数が定義されていないと言う理由を知らない。
私は既に変数 'express'を検査した点で' var express = requires( "express") 'を行っています。 mongodbをこのサーバに正常に接続した後でも、変数mongooseは定義されていませんでした。 – user3655508