Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js NodeJS Express——”的英文缩写;语法:无效或意外标记;什么时候需要jpg_Node.js_Express - Fatal编程技术网

Node.js NodeJS Express——”的英文缩写;语法:无效或意外标记;什么时候需要jpg

Node.js NodeJS Express——”的英文缩写;语法:无效或意外标记;什么时候需要jpg,node.js,express,Node.js,Express,我遇到了一个问题,我试图要求一个.jpg图像。 谷歌搜索时,我以为这与Jest有关,但现在,当我从一个干净的项目开始,没有Jest作为依赖项时,我会遇到同样的错误 问题是什么 这是我要运行的文件 server.js //导入express框架 const express=require('express') //进口路线 const visionAiRouter=require(“./routes/vision ai route”) //设置默认端口 const PORT=process.env

我遇到了一个问题,我试图要求一个.jpg图像。 谷歌搜索时,我以为这与Jest有关,但现在,当我从一个干净的项目开始,没有Jest作为依赖项时,我会遇到同样的错误

问题是什么

这是我要运行的文件

server.js

//导入express框架
const express=require('express')
//进口路线
const visionAiRouter=require(“./routes/vision ai route”)
//设置默认端口
const PORT=process.env.PORT | 4000
//创建快捷应用程序
const app=express()
//视觉AI路线
应用程序使用('/ai',VisionIrouter)
//实现错误路由
应用程序使用((错误、请求、恢复、下一步)=>{
控制台错误(错误堆栈)
res.status(500).send('Something break!')
})
//启动express应用程序
app.listen(端口,函数(){
log(`Server正在运行:${PORT}`)
})
vision ai route.js

//导入
const express=require('express')
const visionAi=require(“../controllers/vision ai controller”)
//创建快速路由器
const router=express.router()
router.get('/',visionAi.labelDetection)
//出口
module.exports=路由器
vision ai controller.js

//资产
常量cat=require('./../data/cat.jpg')
//为“/users/all”的GET请求创建控制器
exports.labelDetection=async(req,res)=>{
//导入Google云客户端库
const vision=require(“@google cloud/vision”);
//创建一个客户端
const client=new vision.ImageAnnotatorClient();
//对图像文件执行标签检测
const[result]=等待客户端标签检测(cat);
常量标签=result.labelNotations;
const stringify=JSON.stringify(标签);
wait res.json(stringify)
}
package.json

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "dependencies": {
    "@google-cloud/vision": "^2.1.1",
    "express": "^4.17.1",
    "nodemon": "^2.0.4"
  },
  "devDependencies": {},
  "scripts": {
    "start": "nodemon server.js"
  },
  "author": "",
  "license": "ISC"
}
Stacktrace

/Users/kod/Desktop/Code/Private/vision-ai/test/data/cat.jpg:1
����
^    
SyntaxError: Invalid or unexpected token
       at Module._compile (internal/modules/cjs/loader.js:721:23)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
        at Module.load (internal/modules/cjs/loader.js:653:32)
        at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
        at Function.Module._load (internal/modules/cjs/loader.js:585:3)
        at Module.require (internal/modules/cjs/loader.js:690:17)
        at require (internal/modules/cjs/helpers.js:25:18)
        at Object.<anonymous> (/Users/kod/Desktop/Code/Private/vision-ai/test/controllers/vision-ai-controller.js:3:13)
        at Module._compile (internal/modules/cjs/loader.js:776:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
/Users/kod/Desktop/code/Private/vision ai/test/data/cat.jpg:1
����
^    
SyntaxError:无效或意外的令牌
at模块编译(内部/modules/cjs/loader.js:721:23)
在Object.Module._extensions..js(internal/modules/cjs/loader.js:787:10)
at Module.load(内部/modules/cjs/loader.js:653:32)
在tryModuleLoad(内部/modules/cjs/loader.js:593:12)
at Function.Module._load(内部/modules/cjs/loader.js:585:3)
at Module.require(内部/modules/cjs/loader.js:690:17)
根据需要(内部/modules/cjs/helpers.js:25:18)
反对。(/Users/kod/Desktop/Code/Private/vision-ai/test/controllers/vision-ai-controller.js:3:13)
at模块编译(内部/modules/cjs/loader.js:776:30)
在Object.Module._extensions..js(internal/modules/cjs/loader.js:787:10)

您不能要求非代码文件,因为
要求
用于加载可执行代码。正确的等价物应该是
const cat=fs.readFileSync('./test/data/cat.jpg')

如何使用require?为了文件?您必须提供图像文件的完整路径。可能与“图像”文件夹类似,您可以放置图像并将“图像”文件夹公开。谢谢,我正试图将我的大脑从React编译成nodeJS,并认为一切都像React;)@paulsm4所以在NodeJS中,您必须始终写出完整的文件路径,而它的工作方式与React不同,您可以从编辑的文件中写出相对的文件路径?正如您从中学到的,问题与路径无关。。。只是“require()”并不是你所想的那样:)谢谢你的澄清!成功了!只是补充一点,我还必须编辑文件路径(基于我帖子上的评论)。该路径实际上是相对于应用程序的PWD的,因此您可能能够通过
/test/data/cat.jpg
,但要明确,您可以使用
path.join(uu dirname,../test/data/cat.jpg')
\uuu dirname
全局文件在所有Node.js模块中都可用,并解析为当前文件所在的目录。