I am working on an expressJS project. I have a route file named send_email.js
, and I want to use parts of this file from two different places. These places are index.js
and user.js
.
So I added the following line for both of index.js
and users.js
:
const send_email = require("./send_mail");
But user.js
is giving me an error because send_email
is undefined. And then I just delete the same line from index.js
and everything goes fine. I can reach send_mail in user.js, and it is what I expect.
Am I overlooking something about requiring files in expressJS? I can use this technique effectively in other projects. Are there expressJS specific things which cause this error?
I created same situation in another tiny project and its' codes like these:
// ------------------------index.js -----------------------
const express = require("express");
const app = express();
/* if coment this two line every thing goes fine */
const mylog = require("./deneme1").mylog;
mylog();
/* if coment this two line every thing goes fine */
const yourlog = require("./deneme2").yourlog;
const route = require("./deneme1").route;
console.log('route :', route);
yourlog();
app.get("/", (req, res)=>{
res.send("OK!");
})
app.listen(3000, () => { "listening on "+3000});
// --------------deneme1.js -------------------------
const express = require("express");
const route = express.Router();
const yourlog = require("./deneme2").yourlog;
console.log('yourlog mmm:', yourlog);
route.get("/deneme", function(req, res){
mylog();
res.send("OK!");
});
function mylog () {
console.log("mylog in deneme1.js");
};
module.exports.route = route;
module.exports.mylog = mylog;
// ------------------deneme2.js-----------------
const express = require("express");
const route = express.Router();
const mylog = require("./deneme1").mylog;
console.log('mylogxx :', mylog);
function yourlog(){
console.log("yourlog deneme2");
mylog();
console.log("----");
}
module.exports.yourlog = yourlog;
deneme1.js
and deneme2.js
require each other and express.js
require both of deneme1.js
and deneme2.js
.