快递路线问题

时间:2017-12-12 15:41:52

标签: javascript node.js express

我试图启动我的Node.js服务器,我有2个文件:我的app.js

const express = require('express'),
  app = express(),
  bodyParser = require('body-parser'),
  morgan = require('morgan'),
  consign = require('consign'),
  cors = require('cors'),
  passport = require('passport'),
  passportConfig = require('./passport')(passport),
  jwt = require('jsonwebtoken'),
  config = require('./index.js');

  app.use(express.static('.'));
  app.use(bodyParser.urlencoded({extended: false}));
  app.use(bodyParser.json());
  app.use(morgan('dev'));
  app.use(cors());
  app.use(passport.initialize());



 app.set('playersecret', config.secret);
 consign({ cwd: 'services' })
.include('Player/app/setup/')
.then('Player/app/api/')
.then('Player/app/routes/')
.into(app);
module.exports = app;

和/app/routes/auth.js

const models = require('@Player/app/setup');

module.exports = (app) => {
const api = app.PlayerAPI.app.api.auth;
app.route('/',).get((req,res) => res.send('Player API'));
app.post('/api/auth/',api.login(models.User));
}

并且据我所知,我的路由未导入app.js,因为如果我在app.js中编写代码,则可以正常使用。

如何正确导入?

2 个答案:

答案 0 :(得分:0)

您定义app路由的方式是它接受app.js实例,因此您需要在const express = require('express') const authRoutes = require('./app/routes/auth.js') const app = express() // ... authRoutes(app) 中执行以下操作:

const express = require('express')
const app = express()

// ...

require('./app/routes/auth.js')(app)

或者你可以内联这个要求,虽然我发现这个杂乱(个人意见):

/app/routes/auth.js

更好的方法是导出router对象:

const express = require('express') const models = require('@Player/app/setup') const api = require('./path/to/PlayerAPI.js') const router = express.Router() router.get('/', ...) router.post('/', api.login(models.User)) module.exports = router

app.js

const express = require('express') const authRoutes = require('./app/routes/auth.js') const app = express() // ... app.use('/api/auth', authRoutes)

{{1}}

答案 1 :(得分:0)

如果要导入js文件,则必须在app.js的开头包含文件名,如下所示。

var express = require('express') var auth = require(./app/routes/auth.js)

您可以在express.js官方文档文件中了解有关导入javascript文件的更多信息。