小编Isa*_*sov的帖子

为什么Google Cloud API尝试以最终用户身份进行连接?

我正在尝试使用Google Cloud Translate API。我从服务帐户生成了JSON文件,并将设置GOOGLE_APPLICATION_CREDENTIALS为JSON文件的保存位置。然后,我在这样的程序中使用了它:

import com.google.cloud.translate.*;
...
Translate translate = TranslateOptions.getDefaultInstance().getService();
Translation translation = translate.translate(message);
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误

com.google.cloud.translate.TranslateException: Your application has authenticated using end user credentials from the Google Cloud SDK or Google Cloud Shell which are not supported by the translate.googleapis.com. We recommend that most server applications use service accounts instead. For more information about service accounts and how to use them in your application, see https://cloud.google.com/docs/authentication/
        at com.google.cloud.translate.spi.v2.HttpTranslateRpc.translate(HttpTranslateRpc.java:61)
        at com.google.cloud.translate.spi.v2.HttpTranslateRpc.translate(HttpTranslateRpc.java:144)
        at com.google.cloud.translate.TranslateImpl$4.call(TranslateImpl.java:113)
        at com.google.cloud.translate.TranslateImpl$4.call(TranslateImpl.java:110)
        at com.google.api.gax.retrying.DirectRetryingExecutor.submit(DirectRetryingExecutor.java:89)
        at …
Run Code Online (Sandbox Code Playgroud)

java authentication json google-translate google-cloud-platform

7
推荐指数
1
解决办法
378
查看次数

如何在没有回调的情况下返回Mongoose查询结果

我有一个结构化的应用程序:index> routes> endpoints> core,其中端点处理发送响应的请求,核心访问数据库.将控制器划分为这两个组件的部分原因是为了在数据库更改后使工作正常工作,并部分简化我的代码.问题是我只能通过回调在我的模块中获得mongoose查询函数的结果,这根本不会简化我的代码.
我想要的是:

var user = coreModule.findUser({id:123}) //return user
var posts = coreModule.findPosts({author:123}) //return posts array
res.render("home", {user:user, posts:posts})
Run Code Online (Sandbox Code Playgroud)

通过做:

//core module example
findUser: function(params){
   User.findOne(params, function(err,docs){
      if(err){
         return err
      }else{
         return docs
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

但相反,我必须使用一堆回调函数,这些函数首先会破坏核心模块的一半用途.我已经看到你可以用SQL和Knex做到这一点,但它不适用于mongoose.如果我想做的事情是不可能的,那么在这种情况下是否会推荐使用猫鼬替代品?

callback mongoose mongodb node.js express

5
推荐指数
1
解决办法
6173
查看次数

在 Node/Express 服务器中使用 async/await 是个坏主意吗?

我有一个 NodeJS/Express Web 应用程序,其中 TypeOrm 用于许多数据库功能。为了避免回调地狱,我通常使用async/await我的端点方法调用并等待数据库操作。
但是,我听说fs.readFileSync应该始终避免使用此类方法,因为它们会阻塞并强制所有其他请求等待。这也适用于async/await? 我是否必须使用承诺和回调来获得不错的多用户性能?

model-view-controller single-threaded node.js express async-await

5
推荐指数
2
解决办法
3763
查看次数

Node/Express JS“无法读取未定义的属性‘用户名’”

在将其标记为重复之前,请理解我所查看的答案都与我的代码无关,无法解决问题。我正在尝试修复 Web 应用程序中的错误,该应用程序正在将文件从 Internet 上传到家庭服务器。我目前正在研究基本的用户身份验证系统。当我尝试在主页上提交登录表单时,我被重定向到一个错误页面,其中部分内容显示“无法读取未定义的属性‘用户名’”。此消息也出现在控制台中。发生了什么,我该如何解决?该错误将我引导至家庭控制器的第 8 行,“username = req.body.username”。应用程序.js

var LocalStrategy = require('passport-local').Strategy;
var flash = require("connect-flash");
var passport = require("passport");
var session = require("express-session");
var expressValidator = require("express-validator");
var mongoose = require("mongoose");
var path = require('path');
var express = require('express');
var cookieParser = require('cookie-parser');
var app = express();
var bodyParser = require('body-parser');
var ejs = require('ejs');
var routes = require('./server/routes');   
routes(app);
app.set('port', process.env.PORT || 3000);
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.use(express.static(path.join(__dirname, 'public')));
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(cookieParser());
mongoose.connect("mongodb://localhost:27017/users");
app.listen(app.get('port'), …
Run Code Online (Sandbox Code Playgroud)

login node.js express passport.js express-validator

2
推荐指数
1
解决办法
9208
查看次数

Express.js - req.query vs req.params

在将此标记为重复之前,请理解我无法从其他答案中获得我正在寻找的解释.

如果我正在做一个寻找基于URL ID的客户应用程序,是什么说的区别customers/1234,并使用req.paramscustomers?id=1234使用req.query?两个url数据方法的作用有何不同?

http url-routing node.js express express-router

2
推荐指数
1
解决办法
2373
查看次数