#javascript #node.js
#javascript #node.js
Вопрос:
Я написал код в app.js
виде :
var express = require("express");
var bodyParser = require("body-parser");
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
var routes=require("./routes/routes1")(app);//ipn listner
var server = app.listen(3000, function () {
console.log("Listening on port %s...", server.address().port);
});
Остальная часть моего кода находится ./routes/routes1.js
в корневой папке;
У меня есть много функций под ним, но несколько функций связаны с одним и тем же объектом
Пример:
fun1
,fun2
,fun3
связаны сcustomer
сущностьюfun4
,fun5
связаны с другим объектом- но
fun1
может вызватьfun5
Проблема в том, что мне нужно разделить fun1
fun2
и fun3
в отдельный файл .js.
Как я могу это сделать и как я могу вызвать функцию другого файла в один файл?
Комментарии:
1. Вы показали нам только основу экспресс-приложения, и ваш вопрос касается маршрутизации. Вы могли бы поместить свои
funX
в разные файлы иrequire
их, но это еще один вопрос. Этот вопрос слишком широк, как сейчас.
Ответ №1:
Ваш вопрос слишком широкий, но вот пример, который может вам помочь. Возможно, вам захочется создать следующую структуру каталогов
myapp
├── app.js
├── _function
│ ├── func1.js
│ ├── func2.js
│ ├── func3.js
│
├── _routes
│ ├── routes1.js
│ ├── routes2.js
где myapp
находится корневая папка (папка проекта), в то время routes
как папка содержит все маршруты, а function
папка содержит все функции, которые можно использовать в других файлах js
app.js
var express = require("express");
var bodyParser = require("body-parser");
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
var routes1 = require("./routes/routes1");
var routes2 = require("./routes/routes2");
// http://localhost:3000/routes1
app.use('/routes1', routes1);
// http://localhost:3000/routes2 // http://localhost:3000/routes2/list
app.use('/routes2', routes2);
var server = app.listen(3000, function () {
console.log("Listening on port %s...", server.address().port);
});
func1.js
module.exports = function(arg1, arg2) {
var add = arg1 arg2;
return add;
}
func2.js
module.exports = function(arg1, arg2) {
var add = arg1 * arg2;
return add;
}
func3.js
module.exports = function(arg1, arg2) {
var add = arg1 - arg2;
return add;
}
routes1.js
var express = require('express');
var func1 = require('../function/func1');
var router = express.Router();
router.get('/', function(req, res, next) {
var result = func1(2, 3);
res.json({func1: result, url: req.url, message:'success'});
});
module.exports = router;
routes2.js
var express = require('express');
var func2 = require('../function/func2');
var func3 = require('../function/func3');
var router = express.Router();
router.get('/', function(req, res, next) {
var result = func2(2, 3);
res.json({func1: result, url: req.url, message:'success'});
});
router.get('/list', function(req, res, next) {
var result = func3(2, 3);
res.json({func1: result, url: req.url, message:'success'});
});
module.exports = router;
Я надеюсь, это поможет вам понять, как использовать функцию в других файлах