有没有办法在 nodeJS POST API 请求中指定本地文件系统路径,我可以使用 curl 但不能使用 nodejs 进行 api 调用
Is there way to specify local file system path in nodeJS POST API request , am able to make api call using curl but not with nodejs
以下 curl API 成功将 .zip 文件从本地文件系统部署到 Azure Function APP。
curl -X POST -u user123:P@ssword --data-binary @"C:\Ddrive\Porject\deploy-zip\wb-uc-code.zip" "https://abc-world.scm.azurewebsites.net/api/zipdeploy"
但我想用 NodeJs 实现同样的效果:所以我将它转换为 -
函数(){
var dataString = "@C:\Ddrive\Workbench\deploy-zip\wb-uc1.zip";
var options = {
url: 'https://abc-world.scm.azurewebsites.net/api/zipdeploy',
method: 'POST',
body: dataString,
auth: {
'user': 'user123',
'pass': 'P@ssword'
}
};
request.post(options, (response, error) => {
if (error) {
console.log("error");
}
else {
console.log(response.body);
}
})
}
执行时出现错误:
------>>>
很可能我认为无法在 选项 中适当地提供文件路径。有人可以帮忙吗?
有两点需要注意
1.You 应该传递 data-binary,你在代码中传递了路径字符串。
2.The response 和 error 的顺序颠倒了。
请参考下面的工作代码
var request=require('request')
var fs = require("fs")
var dataString=fs.createReadStream("D:\testProject\NodeJs\nodejs-docs-hello-world\test4.zip");
var options = {
url: 'https://tonytestwebnode.scm.azurewebsites.net/api/zipdeploy',
method: 'POST',
body: dataString,
auth: {
'user': 'tonytestweb',
'pass': 'XXXX!'
}
};
request.post(options, (error, response) => {
console.log(response.statusCode);
})
以下 curl API 成功将 .zip 文件从本地文件系统部署到 Azure Function APP。
curl -X POST -u user123:P@ssword --data-binary @"C:\Ddrive\Porject\deploy-zip\wb-uc-code.zip" "https://abc-world.scm.azurewebsites.net/api/zipdeploy"
但我想用 NodeJs 实现同样的效果:所以我将它转换为 -
函数(){
var dataString = "@C:\Ddrive\Workbench\deploy-zip\wb-uc1.zip";
var options = {
url: 'https://abc-world.scm.azurewebsites.net/api/zipdeploy',
method: 'POST',
body: dataString,
auth: {
'user': 'user123',
'pass': 'P@ssword'
}
};
request.post(options, (response, error) => {
if (error) {
console.log("error");
}
else {
console.log(response.body);
}
})
}
执行时出现错误:
有两点需要注意
1.You 应该传递 data-binary,你在代码中传递了路径字符串。
2.The response 和 error 的顺序颠倒了。
请参考下面的工作代码
var request=require('request')
var fs = require("fs")
var dataString=fs.createReadStream("D:\testProject\NodeJs\nodejs-docs-hello-world\test4.zip");
var options = {
url: 'https://tonytestwebnode.scm.azurewebsites.net/api/zipdeploy',
method: 'POST',
body: dataString,
auth: {
'user': 'tonytestweb',
'pass': 'XXXX!'
}
};
request.post(options, (error, response) => {
console.log(response.statusCode);
})