这是我的第一个nodejs邮递员程序。我正在检查CORS配置。在完成我的代码后,当我尝试在邮递员中运行时,我得到了错误:
TypeError: Cannot read property 'split' of undefined
<br> at origin (C:\xampp\htdocs\nodepro\recipe\server\src\cors.js:5:34)
<br> at C:\xampp\htdocs\nodepro\recipe\server\node_modules\cors\lib\index.js:219:13
<br> at optionsCallback (C:\xampp\htdocs\nodepro\recipe\server\node_modules\cors\lib\index.js:199:9)
<br> at corsMiddleware (C:\xampp\htdocs\nodepro\recipe\server\node_modules\cors\lib\index.js:204:7)
<br> at Layer.handle [as handle_request] (C:\xampp\htdocs\nodepro\recipe\server\node_modules\express\lib\router\layer.js:95:5)
<br> at trim_prefix (C:\xampp\htdocs\nodepro\recipe\server\node_modules\express\lib\router\index.js:317:13)
<br> at C:\xampp\htdocs\nodepro\recipe\server\node_modules\express\lib\router\index.js:284:7
<br> at Function.process_params (C:\xampp\htdocs\nodepro\recipe\server\node_modules\express\lib\router\index.js:335:12)
<br> at next (C:\xampp\htdocs\nodepro\recipe\server\node_modules\express\lib\router\index.js:275:10)
<br> at urlencodedParser (C:\xampp\htdocs\nodepro\recipe\server\node_modules\body-parser\lib\types\urlencoded.js:91:7)
<br> at Layer.handle [as handle_request] (C:\xampp\htdocs\nodepro\recipe\server\node_modules\express\lib\router\layer.js:95:5)
<br> at trim_prefix (C:\xampp\htdocs\nodepro\recipe\server\node_modules\express\lib\router\index.js:317:13)
<br> at C:\xampp\htdocs\nodepro\recipe\server\node_modules\express\lib\router\index.js:284:7
<br> at Function.process_params (C:\xampp\htdocs\nodepro\recipe\server\node_modules\express\lib\router\index.js:335:12)
<br> at next (C:\xampp\htdocs\nodepro\recipe\server\node_modules\express\lib\router\index.js:275:10)
<br> at expressInit (C:\xampp\htdocs\nodepro\recipe\server\node_modules\express\lib\middleware\init.js:40:5)
来源:
function(origin, callback) {
if(process.env.CORS_WHITELIST.split(' ').indexOf(origin) !== -1) {
callback(null, true);
} else {
callback(new Error('Not Allowed By CORS Configuration'));
}
}
我收到错误消息,说未定义拆分。
我什至为WHITELIST创建了一个.env
文件,但仍然出现错误。
我在.env
文件"CORS_WHITELIST=http://localhost:3000"
中提供了以下书面代码。
答案 0 :(得分:0)
process.env.CORS_WHITELIST
可能未定义。使用dotenv模块来确保可以在process.env
中访问环境变量。
require('dotenv').config()
默认情况下,该路径为root。如果.env文件位于其他位置,则可以添加路径。
require('dotenv').config({ path: '/full/custom/path/to/your/env/vars' })