Javascript 将ExpressJs请求中的参数传递给NodeJs中的另一个文件

Javascript 将ExpressJs请求中的参数传递给NodeJs中的另一个文件,javascript,node.js,express,Javascript,Node.js,Express,首先,谢谢你,请记住,我对Node还很陌生 我试图创建一个假的json创建者(用于开发目的),但遇到了fakerJs。到目前为止,我所做的是: server.js const express = require('express') const User = require('./api/user') const app = express(); const port = 4000 app.get('/user/:times', (req, res) => { res.jso

首先,谢谢你,请记住,我对Node还很陌生

我试图创建一个假的json创建者(用于开发目的),但遇到了fakerJs。到目前为止,我所做的是:

server.js

const express = require('express')

const User = require('./api/user')

const app = express();
const port = 4000

app.get('/user/:times', (req, res) => {
    res.json(User)
});



app.listen(port, () => {
  console.log(`Server Starts at ${port}`)
})
const express = require('express')

const user = require('./api/user')

const app = express();
const port = 4000

app.get('/user/:times', user);        

app.listen(port, () => {
  console.log(`Server Starts at ${port}`)
});
因此,这需要文件user.js

const faker = require('faker')

var _name = faker.name.findName();

var _eventTime = faker.date.future();

var User = [];

for(var i = 0; i < 5; i++) {
    var newUser = {
        type: "selling",
        speaker: _name,
        image: faker.name.firstName(),
        title: faker.commerce.productName(),
        description: faker.hacker.phrase(),
        time: _eventTime,
        duration: 5,
        speakerInfo: [
            {
                name: _name,
                bio: faker.lorem.sentences(),
                twitter: null,
                github: null,
                company: null   
            }       
        ],
        eventStart: _eventTime,
        eventEnd: _eventTime,
        eventDuration: 5,
        productImage: [
            faker.image.technics(),
            faker.image.technics()
        ],
        avatarUrl: faker.image.people()
    }
    User.push(newUser);
}

module.exports = User
const faker=require('faker'))
var_name=faker.name.findName();
var_eventTime=faker.date.future();
var User=[];
对于(变量i=0;i<5;i++){
var newUser={
类型:“销售”,
发言者:姓名,
image:faker.name.firstName(),
标题:faker.commerce.productName(),
description:faker.hacker.phrase(),
时间:_eventTime,
持续时间:5,
speakerInfo:[
{
姓名:_name,
简历:faker.lorem.句子(),
twitter:null,
github:null,
公司:空
}       
],
eventStart:\u eventTime,
eventEnd:_eventTime,
活动持续时间:5,
产品形象:[
faker.image.technology(),
faker.image.technics()
],
avatarUrl:faker.image.people()
}
push(newUser);
}
module.exports=用户
正如您所想象的,我想要的是调用/api/user/10,这将替换for循环中的数字5

我尝试了不同的选择(还阅读了许多其他类似的问题): -将功能移动到server.js,并将其作为req.params.times获取 -使用app.get('/user/:times',Users.createUser(10),(req,res)=>{…}将其发送到user.js文件

我做错了什么?正确的方法是什么

注意:我知道现在我没有把参数time传递给循环,而是循环了5次。我没有传递时间,因为我不知道怎么做,这实际上是我的问题


提前非常感谢。

您不需要浪费时间,只需让函数用户处理请求和响应即可

server.js

const express = require('express')

const User = require('./api/user')

const app = express();
const port = 4000

app.get('/user/:times', (req, res) => {
    res.json(User)
});



app.listen(port, () => {
  console.log(`Server Starts at ${port}`)
})
const express = require('express')

const user = require('./api/user')

const app = express();
const port = 4000

app.get('/user/:times', user);        

app.listen(port, () => {
  console.log(`Server Starts at ${port}`)
});
在此模块中,将导出处理程序函数

user.js:

const faker = require('faker')

var _name = faker.name.findName();

var _eventTime = faker.date.future();

var User = function(req, res) {
  var users = [];
  for(var i = 0; i < +req.params.times; i++) {
    var newUser = {
        type: "selling",
        speaker: _name,
        image: faker.name.firstName(),
        title: faker.commerce.productName(),
        description: faker.hacker.phrase(),
        time: _eventTime,
        duration: 5,
        speakerInfo: [
            {
                name: _name,
                bio: faker.lorem.sentences(),
                twitter: null,
                github: null,
                company: null   
            }       
        ],
        eventStart: _eventTime,
        eventEnd: _eventTime,
        eventDuration: 5,
        productImage: [
            faker.image.technics(),
            faker.image.technics()
        ],
        avatarUrl: faker.image.people()
    }
    users.push(newUser);
  }
  res.json(users);
}

module.exports = User;
const faker=require('faker'))
var_name=faker.name.findName();
var_eventTime=faker.date.future();
var用户=功能(请求、恢复){
var用户=[];
对于(变量i=0;i<+req.params.times;i++){
var newUser={
类型:“销售”,
发言者:姓名,
image:faker.name.firstName(),
标题:faker.commerce.productName(),
description:faker.hacker.phrase(),
时间:_eventTime,
持续时间:5,
speakerInfo:[
{
姓名:_name,
简历:faker.lorem.句子(),
twitter:null,
github:null,
公司:空
}       
],
eventStart:\u eventTime,
eventEnd:_eventTime,
活动持续时间:5,
产品形象:[
faker.image.technology(),
faker.image.technics()
],
avatarUrl:faker.image.people()
}
push(newUser);
}
res.json(用户);
}
module.exports=用户;

您没有将number:times传递给用户nore是您循环中的5个变量,也是您导出的数组,即使您更改了我刚才提到的内容,也不会更改,因为它是​ 当你做require()时创建的,而且你的伪造代码在你的循环之外,所以你总是会得到相同的数据(不是100%,因为我从来没有用过),好吧,我想我应该把这些添加到代码中以澄清…我确实知道现在我使用的是int(5),它将返回5次(是的,我知道它将循环5次,因为它从0到4。在我的代码中,我没有将:次传递给user.js文件…因为这实际上是我的问题。我不知道如何做。了解如何制作模块。你的用户文件应该导出一个函数,该函数返回根据传递给它的参数创建的一系列用户。Also我喜欢使用这个网站api来创建假用户randomuser.me如果你知道如何在节点中使用请求,那就很好了。这解决了问题!我现在明白了。我必须将res.json移动到¨模块¨并简单地调用它(模块)不,他在这里做了路径分离,但仍然没有向你解释为什么它有效,也没有告诉你它与你试图实现的完全不同。