我制作了使用instagram api并有两个路由索引“/”和媒体“/”的应用程序。索引工作正常,但介质不工作。它不在get方法中输入。我做了一样,但一个是工作,第二个不是。我使用typescrip和node。我找不到错误
我媒体路由器
import request from "request"
import express from "express"
import { Router } from 'express'
import { Post } from "../models/Post"
const app = express()
const token: any = process.env.INSTAGRAM_TOKEN
const mediaRouter = Router()
mediaRouter.get("/media", (req: any, res: any) => {
const url = 'https://graph.instagram.com/17841403377847296/media?fields=id,media_url,timestamp&access_token='+token+''
request({ url: url, json: true }, (error: string, response: any) => {
if(error){
res.send("unable to connect to service")
}else{
const array = response.body.data
var Posts: Post[] = [];
array.forEach(function (obj: any) {
Posts.push(new Post(obj.media_url, obj.timestamp))
})
res.send(Posts);
}
})
})
export default mediaRouter
我用户“/”路由器(工作)
import request from "request"
import express from "express"
import { Router } from 'express'
const app = express()
const token: any = process.env.INSTAGRAM_TOKEN
const userRouter = Router()
userRouter.get("/", (req: any, res: any) => {
const url = 'https://graph.instagram.com/17841403377847296/?access_token='+ token +'&fields=account_type,media_count,username'
request({ url: url, json: true }, (error: string, response: any) => {
if(error){
res.send("unable to connect to service")
}else{
res.send("USER " + response.body.username + " HAVE " + response.body.media_count + " POSTS")
}
})
})
export default userRouter
和我的主要应用程序
import express from "express"
import dotenv from "dotenv"
import userRouter from "./routes/userRouter";
import mediaRouter from "./routes/mediaRouter";
const app = express()
dotenv.config();
//envirements variable for port
const port: any = process.env.PORT
app.use("/media", mediaRouter)
app.use("/", userRouter)
//Adding server to port
app.listen(3000, () => {
console.log("server is listen on port "+ port +"")
})
从mediarouter
中删除“/media”
路径。由于它声明了两次,结果路径将是GET/media/media
,而不是GET/media
:
mediaRouter.get("/", (req: any, res: any) => {})