首先,谢谢你,请记住,我是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}`)
})
因此,这需要文件 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
正如您可以想象的那样,我想要的是调用/ api / user / 10,这将取代for循环中的数字5。
我尝试了不同的选项(还阅读了许多其他类似的问题): - 将功能移至server.js并将其作为req.params.times获取 - 使用app.get('/ user /:times',Users.createUser(10),(req,res)=&gt; {...}
将其发送到user.js文件我做错了什么以及做这件事的正确方法是什么?
注意:我知道现在我没有将参数时间传递给循环,而是循环5次。我没有花时间,因为我不知道该怎么做,这实际上是我的问题。
提前多多感谢。
答案 0 :(得分:0)
您不需要传递时间,只需让User用户来处理请求和响应。
<强> server.js 强>
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;