Cómo obtener el valor de la variable, si la variable estaba dentro de app.use
chatbot.js:
const express = require('express'); const app = express.Router(); app.use(['/chat', '/chatbot'], (req, res, next) => { const bot = req.query.bot; const client = req.query.client; const text = req.query.text; const json = require('./json/chatbot') const result = JSON.parse(JSON.stringify(json.result[req.query.text].reply)); console.log(result) res.json({'reply': result}); }); module.exports = app;json/chatbot.js:
const botFile = require('../chatbot'); const bot = botFile.app.bot; const data1 = ["Hi!", "Yo!", "Wassup", `Hello ${client}`] const rep1 = data1[Math.round(Math.random() * data1.length)] const json = { "result": { "hi": { "reply": rep1, "id": 0 }, "hello": { "reply": rep1, "id": 0 }, "sup": { "reply": rep1, "id": 0 }, "yo": { "reply": rep1 , "id": 0 }, "who are you": { "reply": `I'am ${bot}`, "id": 1 } }} module.exports = json;URL UTILIZADA:
https://api.dominio.repl.co/api/v1/chat?client=ClientTEST&bot=Chat+Bot&text=quién+eres+tú
debería responder
{"reply": "I'am Chat Bot"}Pero en cambio, respondió
{"reply": "I'am undefined"}No hay ningún error en la consola.
Tal vez algo como esto:
chatbot.js
const express = require('express'); const app = express.Router(); const getBot = require('./getBot.js') app.use(['/chat', '/chatbot'], (req, res, next) => { const bot = req.query.bot; const client = req.query.client; const text = req.query.text; const json= getBot(client, bot); const result = JSON.parse(JSON.stringify(json.result[req.query.text].reply)); console.log(result) res.json({'reply': result}); }); module.exports = app;getBot.js
function getBot(client, bot){ const data1 = ["Hi!", "Yo!", "Wassup", `Hello ${client}`] const rep1 = data1[Math.round(Math.random() * data1.length)] return { "result": { "hi": { "reply": rep1, "id": 0 }, "hello": { "reply": rep1, "id": 0 }, "sup": { "reply": rep1, "id": 0 }, "yo": { "reply": rep1 , "id": 0 }, "who are you": { "reply": `I'am ${bot}`, "id": 1 } }} } module.exports = getBot;