0

I want to import my react component in my node but it throwing an error. It imports react component after that it show error in react component when there is import a file using common type. following is my node js code. `

import { createRequire } from "module";
const require = createRequire(
    import.meta.url);


const http= require ("http");
const express= require("express");
const cors= require("cors");
const socketIO=require("socket.io");
const { user } = require("../src/component/Join/Join.js");
const app=express();
const port=4500 || process.env.PORT;


const users=[{}];

app.use(cors());

app.get("/",(req,res)=>{
    res.send("Hello detective its working now");
})

const server=http.createServer(app);
const io=socketIO(server);

io.on("connection",(socket)=>{
    console.log("New Connection");
    socket.on("Joined",({user})=>{ //  on means data receive--user destructring and receiving 
        users[socket.id]=user;                           //data from chat user
        console.log(`${user} has joined`);
        socket.broadcast.emit("userJoined",{user:"Admin",message:`${user[socket.id]} has joined`})    // broadcast means khud ko  chhod ke dusre users ko 
        socket.emit("welcome",{user:"Admin",message:`Welcome to the chat,${user[socket.id]}`})
    })

    socket.on("message",({message,id})=>{
        io.emit("sendMessage",{user:user[id],message,id})
    })
    
    
socket.on("disconnect",()=>{
    socket.broadcast.emit("leave",{user:"Admin",message:`${user[socket.id]} has left`})
    console.log("User left");
});





});
server.listen(port,()=>{
    console.log(`server is running on  http://localhost:${port}`);
})

`

and I am trying to connect with react following code `

import React, { useState } from 'react';
import "./Join.css";
import logo from "../../Images/logo.png";
import { Link } from 'react-router-dom';


let user;
const SendUser=()=>{
    user=document.getElementById("Joininput").value;
    document.getElementById("Joininput").value ="";
}

const Join = () => {
    const [name, setname] = useState("");
  return (
    <div className='Joincontainer'>
        <div className="Joinpage">
            <img src={logo} alt="logo" />
            <h1>Mongo Chat</h1>
            <input onChange={(e)=>setname(e.target.value)} type="text" id="Joininput" placeholder='Enter Your Name'/>
            <Link onClick={(e)=>!name ? e.preventDefault():null} to="/chat"> <button onClick={SendUser} className='Joinbtn'>Join In</button></Link>
        </div>
    </div>
  )
}

export {Join}
export {user}

`

but it throws following error in node.

`

import React, { useState } from 'react';
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at Object.compileFunction (node:vm:360:18)
    at wrapSafe (node:internal/modules/cjs/loader:1088:15)
    at Module._compile (node:internal/modules/cjs/loader:1123:27)
    at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
    at Module.load (node:internal/modules/cjs/loader:1037:32)
    at Module._load (node:internal/modules/cjs/loader:878:12)
    at Module.require (node:internal/modules/cjs/loader:1061:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at file:///D:/Lakshman/Js%20Code/Chat_App/cchat/server/index.js:10:18
    at ModuleJob.run (node:internal/modules/esm/module_job:193:25)

`

I want to it use module and common export in same file.

0 Answers0