相关疑难解决方法(0)

在Express中,app.router到底做了什么?

当我使用express二进制文件创建示例Express应用程序时,引导程序代码包含以下行:

...

var app = express();
...
app.use(app.router);
Run Code Online (Sandbox Code Playgroud)

我没有找到关于app.router的更多信息.我认为这是处理路由(app.get(),app.post()等)规则的中间件,但是当我删除app.use(app.router)时,这些规则也会执行; 线.

那么这个中间件的确切用途是什么?

node.js express

28
推荐指数
3
解决办法
4万
查看次数

Express错误 - TypeError:Router.use()需要中间件函数但是有一个Object

当我运行npm start运行我的快速应用程序时,我收到此错误.

TypeError: Router.use() requires middleware function but got a Object
Run Code Online (Sandbox Code Playgroud)

我的app.js代码

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var routes = require('./routes/index');
var users = require('./routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

// uncomment after placing your favicon in /public
//app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public'))); …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express

28
推荐指数
5
解决办法
5万
查看次数

使用ES6导入+导出关键字和Babel导入/导出Express路由器

我有一个最初使用Express 2.X构建的旧测试项目.我正在将它移动到Express 4.x并尝试插入Babel 6.x来试验服务器端的ES6功能.

Express 4.x的更新没问题.原始应用程序工作正常.当我开始添加ES6功能时会出现问题.

我特别想替换所有requiremodule.export说明书用ES6 import {...} from...export {...}.

问题:我似乎无法将外部文件中的路由导入主app.js文件.

我的app.js加载路线如下:

import { indexRoute } from './routes/index_route';
app.use('/', indexRoute);
Run Code Online (Sandbox Code Playgroud)

里面index_route.js我有:

"use strict";
import express from 'express';
var router = express.Router();

router.get('/', function(req, res, next) {
  res.render('index_view', { title: 'Express' });
});

export { router }
Run Code Online (Sandbox Code Playgroud)

这个源代码适用于Babel,但节点在启动时会抱怨:

Router.use() requires middleware function but got a undefined
Run Code Online (Sandbox Code Playgroud)

我有两个文件index_route.js,每个文件用于一组路由,而AFAIS它们都导入+修改+导出相同的路由器对象.在任何情况下,使用ES6关键字完成的导出+导入都会返回undefined.

我究竟做错了什么?我在错误的对象上使用ES6关键字吗?我是否使用过时的指令来配置里面的路线app.js

node.js express babeljs

13
推荐指数
2
解决办法
1万
查看次数

Mongoose.connect 不工作

当我在命令行中运行节点时,server.js出现以下错误:

C:\Users\Shaelyn\WebstormProjects\CIT366Projects\cms>node server.js
C:\Users\Shaelyn\WebstormProjects\CIT366Projects\cms\node_modules\express\lib\router\index.js:458
      throw new TypeError('Router.use() requires a middleware function but got a ' + gettype(fn))
      ^

TypeError: Router.use() requires a middleware function but got a Object
    at Function.use (C:\Users\Shaelyn\WebstormProjects\CIT366Projects\cms\node_modules\express\lib\router\index.js:458:13)
    at Function.<anonymous> (C:\Users\Shaelyn\WebstormProjects\CIT366Projects\cms\node_modules\express\lib\application.js:220:21)
    at Array.forEach (<anonymous>)
    at Function.use (C:\Users\Shaelyn\WebstormProjects\CIT366Projects\cms\node_modules\express\lib\application.js:217:7)
    at Object.<anonymous> (C:\Users\Shaelyn\WebstormProjects\CIT366Projects\cms\server.js:34:5)
    at Module._compile (module.js:643:30)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Function.Module.runMain (module.js:684:10)
    at startup (bootstrap_node.js:187:16)
    at bootstrap_node.js:608:3
Run Code Online (Sandbox Code Playgroud)

我认为部分原因可能是它mongoose.connect是一个未解决的函数。有谁知道如何修复这个错误?这是我的代码:

   // Get dependencies
    var express = require('express');
    var path …
Run Code Online (Sandbox Code Playgroud)

javascript mongoose mongodb node.js

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

node.js ×4

express ×3

javascript ×2

babeljs ×1

mongodb ×1

mongoose ×1