Узел Js TypeError с morgan: app.use не является функцией - PullRequest
0 голосов
/ 08 октября 2018

Я новичок в узле js и после учебника по scotch.io .Я импортировал morgan для регистрации запросов, но когда я запускаю код, я получаю TypeError: app.use не является функцией .Это мой код для app.js;

const express = require('express');
const logger = require('morgan');
const bodyParser = require('body-parser');

const app = express;

app.use(logger('dev'));

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

app.get('*', (req, res) => res.status(200).send({
    message: 'Welcome to deep thinking.'
}));

module.exports = app;

И для package.json:

{
  "name": "postgres-express-react-node-tutorial",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start:dev": "nodemon ./bin/www",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.18.3",
    "express": "^4.16.3",
    "morgan": "^1.9.1"
  },
  "devDependencies": {
    "nodemon": "^1.18.4"
  }
}

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

require('express') возвращает функцию, которую вы должны вызвать, чтобы получить экспресс-приложение.Поэтому:

const app = express;

следует изменить на:

const app = express();
0 голосов
/ 08 октября 2018

Попробуйте, измените app=express; to app=express();

const express = require('express');
const logger = require('morgan');
const bodyParser = require('body-parser');

const app = express(); // changed this line

app.use(logger('dev'));

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

app.get('*', (req, res) => res.status(200).send({
    message: 'Welcome to deep thinking.'
}));

module.exports = app;
...