Javascript 将ExpressJs请求中的参数传递给NodeJs中的另一个文件
首先,谢谢你,请记住,我对Node还很陌生 我试图创建一个假的json创建者(用于开发目的),但遇到了fakerJs。到目前为止,我所做的是: server.jsJavascript 将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
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移动到¨模块¨并简单地调用它(模块)不,他在这里做了路径分离,但仍然没有向你解释为什么它有效,也没有告诉你它与你试图实现的完全不同。