2017-01-13 9 views
0

こんにちは、私は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) 

bodyParsercompressionのような他の変数に同じである誰かが、私はrequire()を使用した後でも説明していただけますか?私がnode server.jsで実行すると、server.jsは正常に動作します。だから私は、デバッガが、間違いなく使われているいくつかの変数が定義されていないと言う理由を知らない。

答えて

-1

ノードを経由する必要があります。

あなただけの追加のために必要とするいくつかのパッケージがありますが、「グローバル」

そして、あなたは変数にして必要とする必要があるほとんどのパッケージです。 IE:

var express = require("express"); 
+0

私は既に変数 'express'を検査した点で' var express = requires( "express") 'を行っています。 mongodbをこのサーバに正常に接続した後でも、変数mongooseは定義されていませんでした。 – user3655508

関連する問題