2017-10-05 50 views
0

我試圖讓我的模擬API(json-server)以一種方式作出響應,如果客戶端發送AUTH_TOKEN在他的請求頭,並以另一種方式,如果他沒有。這段代碼就是我使用的,它來自json-server文檔。如何在json-server請求中找到request.headers?

const jsonServer = require('json-server') 
const server = jsonServer.create() 
const router = jsonServer.router('db.json') 
const middlewares = jsonServer.defaults() 

server.use(middlewares) 
server.use((req, res, next) => { 
if (isAuthorized(req)) { // add your authorization logic here 
    next() // continue to JSON Server router 
} else { 
    res.sendStatus(401) 
} 
}) 
server.use(router) 
server.listen(3000,() => { 
    console.log('JSON Server is running') 
}) 

當然這個工程,除了isAuthorized(req)函數需要檢查請求頭。我的isAuthorized功能看起來如下(僞)。

const isAuthorized = (req) => { 
    return req.getHeader('AUTH_TOKEN') ? true : false; 
} 

這不起作用,因爲req沒有getHeader方法,但我的意圖是明確的 - 我需要檢查令牌,如果存在返回true,否則爲false。

我該如何做到這一點?

req.headers返回以下內容。

{ 
    host: 'localhost:3000', 
    map: '[object Object]', 
    'if-none-match': 'W/"a...........5r/3c"', 
    accept: 'application/json, text/plain, */*', 
    'user-agent': 'App/1 CFNetwork/887 Darwin/16.7.0', 
    'accept-language': 'en-us', 
    'accept-encoding': 'gzip, deflate', 
    connection: 'keep-alive' 
} 

這實際上與我在實際請求中發送的標頭沒有任何關係。

回答

相關問題