Hi guys.I'm working with socket.io, but I got this error message for the route of /about
TypeError: Path must be a string. Received IncomingMessage
at assertPath (path.js:7:11)
at extname (path.js:887:5)
at new View (C:\UsersAdmin\Desktop\rinterestnode_modules\express\lib\view.js:57:14)
at Function.render (C:\UsersAdmin\Desktop\rinterestnode_modules\express\libapplication.js:570:12)
at app.get (C:\UsersAdmin\Desktop\rinterest\server.js:47:20)
at Layer.handle [as handle_request] (C:\UsersAdmin\Desktop\rinterestnode_modules\express\lib\router\layer.js:95:5)
at next (C:\UsersAdmin\Desktop\rinterestnode_modules\express\lib\router\route.js:137:13)
at Route.dispatch (C:\UsersAdmin\Desktop\rinterestnode_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (C:\UsersAdmin\Desktop\rinterestnode_modules\express\lib\router\layer.js:95:5)
at C:\UsersAdmin\Desktop\rinterestnode_modules\express\lib\router\index.js:281:22
Here is my file server
const path = require("path");
const app = require("express")();
const bodyParser = require("body-parser");
const session = require("express-session");
app.use(
bodyParser.urlencoded({
extended: true
})
);
app.use(bodyParser.json());
app.use(
session({
secret: "change-me",
resave: false,
rolling: true,
saveUninitialized: true,
httpOnly: true,
cookie: {
maxAge: 60000 * 60 * 24 * 7 * 4
}
})
);
const server = require("http").Server(app);
const io = require("socket.io")(server);
const next = require("next");
const dev = process.env.NODE_ENV !== "production";
const nextApp = next({ dev });
const nextHandler = nextApp.getRequestHandler();
nextApp.prepare().then(() => {
app.get("/about", (req, res) => {
return app.render(req, res, "/about", req.params);
});
app.get("*", (req, res) => {
return nextHandler(req, res);
});
server.listen(80, err => {
if (err) throw err;
console.log("> Ready on http://localhost");
});
});
And here is my page pages/about.js
import React from "react";
export default class About extends React.Component {
render() {
return <div>/about</div>;
}
}
very simple isn't it.i guess it is not a big problem and the issue will be closed quickly.thanks in advance!
@timneutkens yes
return app.render(req, res, "/about", req.params);
should be
return nextApp.render(req, res, "/about", req.params);
Most helpful comment
should be