我创建了一个文件,该文件创建了快速中间件应用程序。
我在单独的文件中定义了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
})
})
答案 0 :(得分:1)
问题出在您的app.js
文件中,您正在执行名为 的导出,即
module.exports.app = app;
这意味着导入时需要明确:
const app = require('./app').app;
相反,如果您将app
设置为默认值,即
module.exports = app
然后,您无需更改my-other-file
中文件的要求。
答案 1 :(得分:0)
您的问题的简单答案是通过运行以下命令
node my-other-file.js
如果您更改
module.exports.app = app
至module.exports = app
文件中的app.js
如果您正在寻找文件夹结构指南,则以下链接将为您提供帮助
ExpressJS How to structure an application?
https://www.terlici.com/2014/08/25/best-practices-express-structure.html
https://medium.freecodecamp.org/how-to-write-a-production-ready-node-and-express-app-f214f0b17d8c
答案 2 :(得分:0)
使用CLI(node myapp.js
)运行nodejs文件时,它将仅运行文件代码。因此,您必须仔细组织文件,以正确的方式相互依赖。
调用require()
语句时,节点将运行所需的js代码。因此,您将需要一个需要所有其他js文件依赖项的js文件。
因此,您可以按以下方式运行您的应用:node my-other-file.js
。它将需要app.js
文件,运行它,然后按您的期望运行my-other-file代码。
但这可能不是您想要的顺序,因此您应该从my-other-file
导入app.js
并运行其定义的功能。
app.js
const express = require('express')
const cors = require('cors')
const mysql = require('mysql')
const bodyParser = require('body-parser')
const users = require('./users')
const declareEndpoints = require('./my-other-file')
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');
}
})
// Call the function from my-other-file
declareEndpoints(app)
module.exports.app = app
my-other-file.js
//export as function to be used from the main js file
export default function declareEndpoints(app) {
app.get('/getallusers',async (req,res) => {
let sql =query('SELECT', 'users','user_deleted = '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
})
})
}
答案 3 :(得分:0)
我的答案。
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());
// Don't call listen here
// app.listen('3001' ,(err)=>{
// if(err) console.log(err);
// else console.log('server is running on port 3001');
// })
module.exports = app
index.js-节点调用的文件。例如:节点index.js
const app = require("./app.js");
const port = "3001";
app.listen(port, () => console.log("Started listening"));