小编sta*_*af1的帖子

Google Cloud SQL代理无法找到默认凭据

我正试图在本地运行Google Cloud SQL代理,如下所示:

$ ./cloud_sql_proxy -instances project-name:region-name:instance-id tcp:3306
Run Code Online (Sandbox Code Playgroud)

但它正在回归

google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for mor information.
Run Code Online (Sandbox Code Playgroud)

我的Google Cloud SDK已经安装并登录到Google.

我该如何解决?

google-cloud-sql google-cloud-platform google-cloud-sdk

17
推荐指数
2
解决办法
7443
查看次数

Winston logger.info不是一个功能

我已经设置了Winston与MySQL和控制台的传输,并把它放在一个名为的模块中logger.像这样......

// modules/logger.js

/* require statements */

exports.logger = new (winston.Logger)({
    transports: [
        new winstonMysql(winstonMysqlConfig),
        new (winston.transports.Console)
    ]
});
Run Code Online (Sandbox Code Playgroud)

然后在 /modules

// modules/index.js

/* grab other modules */

exports.logger = require('./logger.js');
Run Code Online (Sandbox Code Playgroud)

当我这样做时console.log(modules.logger),我明白了

{ logger: 
    EventEmitter {
        ...
        error: [Function],
        warn: [Function],
        info: [Function],
        verbose: [Function],
        debug: [Function],
        silly: [Function],
        ...
    }
 }
Run Code Online (Sandbox Code Playgroud)

但是,当我称之为modules.logger.info()抛出modules.logger.info is not a function错误.怎么了?

logging node.js winston

10
推荐指数
1
解决办法
4448
查看次数

Express.js无法读取未定义的属性'req'

我的Express.js应用程序一直在投掷Cannot read property 'req' of undefined.实质上,它会侦听GET请求,获取content查询,然后使用表进行回复.这是出现问题的部分.

index.js

var panels = require('./modules/panels.js');
app.get('/panel', function (req, res) {
    var user;
    if (user = req.session.user) {
        panels.getContents(req.query.content, user.innId, res.send);
    } else {
        res.sendStatus(401);
    }
});
Run Code Online (Sandbox Code Playgroud)

模块/ panels.js

exports.getContents = function(panelName, innId, callback) {
    var response = "";
    switch (panelName) {
        case 'tenants':
            con.query(queryString, queryParams, function(err, rows) {
                if (err) {
                    handle(err);
                } else {
                    if (rows.length == 0) {
                        var tenants = 0;
                        var debtors = 0; …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express

9
推荐指数
1
解决办法
3695
查看次数

从App Engine连接到Google Cloud SQL时ENOENT

我正在尝试在Google App Engine上部署我的Node.js应用程序并且部署得很好,但由于某种原因它无法连接到Google Cloud SQL.这是它抛出的东西:

Error: connect ENOENT /cloudsql/my-project-id:asia-east1:my-sql-instance
Run Code Online (Sandbox Code Playgroud)

这是我配置连接的方式:

if (process.env.INSTANCE_CONNECTION_NAME) {
     exports.mysqlConfig = {
         user: process.env.GCLOUD_SQL_USERNAME,
         password: process.env.GCLOUD_SQL_PASSWORD,
         socketPath: '/cloudsql/' + process.env.INSTANCE_CONNECTION_NAME
     }
} else {
    // Use settings for localhost
}
Run Code Online (Sandbox Code Playgroud)

我正在使用node-mysql模块连接到数据库.

App Engine和Cloud SQL已经在同一个项目中.我的理论是App Engine和Cloud SQL必须在同一个项目同一个区域,但我不确定.

mysql google-app-engine node.js

8
推荐指数
3
解决办法
4740
查看次数

Firebase 云消息传递前台通知在 Vue 中不起作用

我一直致力于在我的 Vue PWA 应用程序中集成 FCM。到目前为止,我已经设法让后台通知正常工作,但是当应用程序在前台不起作用时处理通知。这是我的代码。

src/App.vue

import firebase from './plugins/firebase'

export default {
  // Other stuff here...

  methods: {
    prepareFcm () {
      var messaging = firebase.messaging()
      messaging.usePublicVapidKey(this.$store.state.fcm.vapidKey)
      messaging.getToken().then(async fcmToken => {
        this.$store.commit('fcm/setToken', fcmToken)
        messaging.onMessage(payload => {
          window.alert(payload)
        })
      }).catch(e => {
        this.$store.commit('toast/setError', 'An error occured to push notification.')
      })
    }
  },

  mounted () {
    this.prepareFcm()
  }
}
Run Code Online (Sandbox Code Playgroud)

public/firebase-messaging-sw.js

importScripts('https://www.gstatic.com/firebasejs/5.5.6/firebase-app.js')
importScripts('https://www.gstatic.com/firebasejs/5.5.6/firebase-messaging.js')

firebase.initializeApp({
  messagingSenderId: '123456789'
})

const messaging = firebase.messaging()

messaging.setBackgroundMessageHandler(function (payload) {
  return self.registration.showNotification(payload)
})
Run Code Online (Sandbox Code Playgroud)

src/plugins/firebase.js

import firebase from '@firebase/app'
import …
Run Code Online (Sandbox Code Playgroud)

javascript firebase vue.js firebase-cloud-messaging

8
推荐指数
1
解决办法
2266
查看次数

从浏览器历史记录中删除当前页

我正在我的网站上构建一个文本编辑器,工作流程如下.

  1. /list用户中,用户从列表中选择要编辑的条目/edit/[article_id].
  2. 用户完成他们的工作,然后单击"提交".
  3. 服务器处理该事物,并将它们重定向回到/edit/[article_id]现在反映编辑的工作.服务器还会激活页面上的Flash消息以指示编辑成功.

此时,用户可能想要返回/list并单击浏览器的"后退"按钮.这将根据他们提交的次数将其重复带回编辑器.

我已经尝试在页面的某处放置一个Back按钮,但很多用户只是忽略它.

我宁愿不通过AJAX发布提交,因为这也会影响flash消息系统.

我喜欢做的是,在用户提交时替换历史列表中的最后一个条目,而不更改其长度.可能吗?

html javascript html5-history

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

如何告诉 Vue 应用程序使用 Firebase 模拟器?

我有一个利用 Firebase Cloud Functions 的 Vue 应用程序,我已将其配置如下。

src/plugins/firebase.js

import firebase from '@firebase/app'
import '@firebase/firestore'
import '@firebase/auth'
import '@firebase/functions'

const firebaseConfig = {
  apiKey: 'my-api-key',
  authDomain: 'my-project.firebaseapp.com',
  databaseURL: 'https://my-project.firebaseio.com',
  projectId: 'my-project',
  storageBucket: 'my-project.appspot.com',
  messagingSenderId: '12345678910',
  appId: '123456789101112',
  measurementId: 'ASDFJKL'
}

firebase.initializeApp(firebaseConfig)

export default firebase
Run Code Online (Sandbox Code Playgroud)

src/main.js

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
// Other imports goes here
import firebase from './plugins/firebase'

Vue.config.productionTip = false

new Vue({
  router,
  store,
  // Other includes goes …
Run Code Online (Sandbox Code Playgroud)

javascript firebase vue.js vue-cli

7
推荐指数
3
解决办法
1917
查看次数

Google App Engine/_ah/health

我已经设置了我的Node.js应用程序来记录任何返回404的请求.像这样:

console.error("404: " + req.url);
Run Code Online (Sandbox Code Playgroud)

现在在调试其他问题时,我发现我的日志充斥着这些:

404: /_ah/health
404: /_ah/health
404: /_ah/health
Run Code Online (Sandbox Code Playgroud)

有无数的它们,它们甚至相距不到1毫秒.

这些是什么?是谁送的?它来自GAE吗?某种健康检查民意调查?我应该提供该URL吗?我应该在该URL中提供什么?

google-app-engine

6
推荐指数
1
解决办法
3931
查看次数

无法在Google字体上设置字体粗细

这个问题已经问了很多遍了,但是没有一个对我有用。例如:

我使用Google Fonts之@import类的方法是这样的:

@import url('https://fonts.googleapis.com/css?family=Rubik');

body {
    font-family: 'Rubik', sans-serif;
}
Run Code Online (Sandbox Code Playgroud)

出现字体,但重量我无能为力。该<strong>标签不显示大胆。font-weightCSS中的属性无效。甚至没有在浏览器的检查器中覆盖它会改变任何东西。

更新资料

事情似乎只能在基于Gecko的浏览器上运行,例如Firefox。

css fonts google-webfonts

6
推荐指数
1
解决办法
4107
查看次数

如何在 Knex 查询中执行 MySQL 函数?

BINARY我的表中有一个字段,我通常这样抓取:

SELECT HEX(users.id) AS id FROM users WHERE username = ?
Run Code Online (Sandbox Code Playgroud)

我最近开始使用 Knex,因为我需要能够WHERE从对象动态生成子句。这是我尝试过的:

knex('users').select('HEX(users.id) AS id)').where(filter);
Run Code Online (Sandbox Code Playgroud)

这是它生成的查询:

select `HEX(users`.`id)` as `id` ....
Run Code Online (Sandbox Code Playgroud)

然后我尝试了这个:

knex('users').select('HEX(`users`.`id`) AS id').where(filter);
Run Code Online (Sandbox Code Playgroud)

它提出了这个:

select `HEX(``users```.```id``)` as `id` ....
Run Code Online (Sandbox Code Playgroud)

如何执行HEX()而不被误认为是列名?

mysql node.js knex.js

6
推荐指数
1
解决办法
4541
查看次数