Often times, I have issue locating files from root directory. I have made this simple register form, I serve html form files to user.js then serve the user.js to the main server.js using middleware function. i.e app.use(). I was hoping to see the link from the index.html display and finally post the form to be sure that I got the absolute path but to no avail. i have been struggling two days for this please help.
project link: Glitch
I didn’t look too much at your code but.
-
path.join takes a comma separated list.
-
res.render is meant to be used with template engines, if you just want to serve an html file you can use res.sendFile, or express.static.
Example server.js
app.get("/", function(req, res) {
res.sendFile(path.join(__dirname, "/views/index.html"));
});
You might also want to give the basic and advanced node and express sections of the curriculum a look.
Hello lasjorg, your answer was so helpful i use it to make many things work in the main server that is //server.js engine . But this is now the basic problem am having:
- I don’t want the the template to be serve in the main script that is server.js on glitch,
i want it to be served in //routes/user.js calling router.get();
const express = require("express");
const router = express.Router();
const path = require("path");
router.get("/", function(req, res){
res.render(path.join("index", {talk: "hey", message: "hellow chris"}));
});
module.exports = router;
Then using middleware that is, app.use() NOW in the main //server.js serve //routes.use.js then //app.use(,);
//importing packages from package.json and modules from root directory
const express = require("express");
const app = express();
const dbInitiation = require("./construct/dbs");
const bodyParser = require("body-parser");
const dotenv = require("dotenv").config({path: "./.env"});
const userRouter = require("./routes/user");
//const userRoute = require("./routes/user");
const path = require("path");
//set directory for views template files
app.set('views', './views');
//set view engine
app.set('view engine', 'pug');
//middleware,
app.use(bodyParser.urlencoded({extended:false}));
app.use(express.json());
app.use(bodyParser.json());
//serving mongodb
dbInitiation();
app.use("/user", userRouter);
app.listen(process.env.PORT, function(req, res) {
console.log("app running on port:", process.env.PORT);
});
In this case am seeing nothing; compare to when i work everything on //server.js
am hoping to see the message //hello chris
This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.