首页 > 解决方案 > 如何运行在其他文件中定义的 get 和 post 等应用程序功能

问题描述

我创建了一个创建快速中间件应用程序的文件。

我已经在一个单独的文件中定义了 app 函数。

如何运行应用程序功能。

我的app.js档案

const express = require('express')
const cors = require('cors')
const mysql = require('mysql')
const bodyParser = require('body-parser')
const users = require('./users')
const app = express()
app.use(cors());
app.use(bodyParser.json());
app.options('*',cors());

app.listen('3001' ,(err)=>{
  if(err)
  console.log(err);
  else{
    console.log('server is running on port 3001');
  }
})
module.exports.app = app

我的另一个文件有以下内容,可以说是my-other-file.js

const app = require('./app')

//get request for all checklist details
app.get('/getallusers',async (req,res)=>{
  let sql =query('SELECT', 'users','user_deleted = 0', 'firstname,lastname,name,email,photo,admin')
  var results =await  dbQuery(res,sql)
  console.log(results);
  res.status(200).json({
    status: 200,
    message : `Found ${results.length} users`,
    users: results
  })
})

标签: javascriptnode.jsexpress

解决方案


问题出在您的app.js文件中,您正在执行命名导出,即

module.exports.app = app;

这意味着当您导入时,您需要明确:

const app = require('./app').app;

相反,如果您进行app默认导出,即

module.exports = app

然后,您无需更改在my-other-file.


推荐阅读