我正试图在本地运行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.
我该如何解决?
我已经设置了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错误.怎么了?
我的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) 我正在尝试在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必须在同一个项目和同一个区域,但我不确定.
我一直致力于在我的 Vue PWA 应用程序中集成 FCM。到目前为止,我已经设法让后台通知正常工作,但是当应用程序在前台不起作用时处理通知。这是我的代码。
src/App.vueimport 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.jsimportScripts('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.jsimport firebase from '@firebase/app'
import …Run Code Online (Sandbox Code Playgroud) 我正在我的网站上构建一个文本编辑器,工作流程如下.
/list用户中,用户从列表中选择要编辑的条目/edit/[article_id]./edit/[article_id]现在反映编辑的工作.服务器还会激活页面上的Flash消息以指示编辑成功.此时,用户可能想要返回/list并单击浏览器的"后退"按钮.这将根据他们提交的次数将其重复带回编辑器.
我已经尝试在页面的某处放置一个Back按钮,但很多用户只是忽略它.
我宁愿不通过AJAX发布提交,因为这也会影响flash消息系统.
我喜欢做的是,在用户提交时替换历史列表中的最后一个条目,而不更改其长度.可能吗?
我有一个利用 Firebase Cloud Functions 的 Vue 应用程序,我已将其配置如下。
src/plugins/firebase.jsimport 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.jsimport 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) 我已经设置了我的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 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。
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()而不被误认为是列名?