正如这里建议的,人名应该大写,比如John William Smith。
我正在用 Golang 编写一个小软件,它从用户的表单输入中获取姓氏和名字。
在 Go 1.18 之前我一直在使用:
lastname = strings.Title(strings.ToLower(strings.TrimSpace(lastname)))
firstname = strings.Title(strings.ToLower(strings.TrimSpace(firstname)))
Run Code Online (Sandbox Code Playgroud)
它可以工作,但现在 Go 1.18已弃用strings.Title()。
他们建议改用golang.org/x/text/cases。
所以我想我应该改变我的代码,如下所示:
caser := cases.Title(language.Und)
lastname = caser.Title(strings.ToLower(strings.TrimSpace(lastname)))
firstname = caser.Title(strings.ToLower(strings.TrimSpace(firstname)))
Run Code Online (Sandbox Code Playgroud)
它的工作原理与以前相同。
区别在于荷兰语单词的标题ijsland应该是 asIJsland和 not Ijsland。
caser := cases.Title(language.Und)在我使用的行中Und,因为我不知道要使用什么语言标签。
我应该使用language.English或language.AmericanEnglish或其他?
到目前为止,就像是strings.Title()在使用Und或English?
有没有办法use:在 Svelte 3 中优雅地有条件地添加和删除属性?
例子:
<script>
import {classes} from "./functions.js"
export let originalClasses
</script>
<button use:classes>Button</button>
Run Code Online (Sandbox Code Playgroud)
有没有办法添加或删除use:classesiforiginalClasses为 true?
我不知道如何输入 Svelte 3 反应式语法变量。
<script lang="ts">
import type { Player, Team } from "./types";
import { DEFAULT_PLAYER } from "./utils";
$: player = DEFAULT_PLAYER as Player;
$: team = { search: "Real", players: [] } as Team;
</script>
Run Code Online (Sandbox Code Playgroud)
但这不起作用:
'Team' cannot be used as a value because it was imported using 'import type'.ts(1361)
Run Code Online (Sandbox Code Playgroud)
如果我用这个代替:
$: team = ({ search: "Real", players: [] } as Team);
Run Code Online (Sandbox Code Playgroud)
VSCode 扩展svelte.svelte-vscode格式与我保存时的第一个扩展格式相同。
这是我的错吗?
有没有更好的方法来投射这些反应性变量?
我正在学习Express.js并使用他们的生成器,我生成了一个新的应用程序:
npm install express-generator -g && express myapp
Run Code Online (Sandbox Code Playgroud)
之后我看到app.js有这样的代码:
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get("env") === "development" ? err : {};
// render the error page
res.status(err.status || 500);
res.render("error");
});
Run Code Online (Sandbox Code Playgroud)
正如您在图像中看到的那样,eslint正在抱怨已next声明但从未使用过的参数。我同意,但如果我删除它express不会呈现错误页面。
为什么会有这种行为?
这对我来说很危险,因为我不能再相信 eslint 或我的编码学位了?我肯定错过了一些东西。但什么?
我读了很多:
但是,我还无法理解我们的端点(// graphql)是否受到这种类型的攻击的保护,或者是否有必要使用以下解决方案来保护它:https : //github.com/expressjs/csurf。
我不清楚的是在这里:https : //github.com/pillarjs/understanding-csrf他们说:
当您错误地使用CSRF令牌时:...将它们添加到JSON AJAX调用中如上所述,如果您不支持CORS并且您的API严格是JSON,则将CSRF令牌添加到您的AJAX调用中绝对没有意义。
如果我们将端点限制为仅使用Content-Type: application/json,那么我们安全吗?
我需要的是async-await在 Svelte 中使用onMount()。
或者,也许您可以建议我什么是错误的以及我可以使用的替代方法。
再现
"Mounting..."和"A lot of background work..."为什么?
难道onMount()识别async功能的承诺?应该是?
我需要这种async行为,因为我需要function lazyLoading()在渲染Child组件之前等待。
在 Svelte 中是否有其他方法可以做到这一点?
我正在使用 Apollo Server 2(但这个问题不仅与 Apollo 相关)和 Express.js vanilla(与apollo-server-express)。
除了Express 会话机制外,所有内容也适用于订阅。
问题:
我正在使用cookie-session ( https://github.com/expressjs/cookie-session,但我认为这对于express-session中间件是一样的),当我的浏览器开始与我的服务器建立新连接时,ApolloServeronConnect钩子不会'没有req属性,也没有req.session等等......
我所能做的就是从分析该cookiewebSocket.upgradeReq.headers.cookie的onConnect生命周期挂钩,但它似乎对我很哈克。
编码:
const { ApolloServer } = require('apollo-server-express')
const typeDefs = require('../src/graphql/types')
const resolvers = require('../src/graphql/resolvers')
const models = require('../src/models')
const apolloServer = new ApolloServer({
typeDefs,
resolvers,
context: ({ req, connection }) => {
// connection exists only on webSocket connection
if (connection) { …Run Code Online (Sandbox Code Playgroud) I\xe2\x80\x99m 使用 Golang、PostgreSQL 和 go-pg ( https://github.com/go-pg/pg )。
\n\n我需要这个查询:
\n\nWITH cte AS (\n SELECT\n "player"."id",\n "player"."created_at",\n "player"."note"\n FROM\n "players" AS "player"\n ORDER BY\n "amount" DESC,\n "id"\n LIMIT 5\n ) ( SELECT * FROM cte ) UNION ALL\n (\n SELECT\n "id",\n "created_at",\n CONCAT_WS ( \'|\', LAST_VALUE ( "created_at" ) OVER ( ), LAST_VALUE ( "id" ) OVER ( ) ) AS note\n FROM\n cte -- THIS IS CORRECT\n LIMIT 1\n )\nRun Code Online (Sandbox Code Playgroud)\n\n相反go-pg一直给我这个:
WITH "cte" AS …Run Code Online (Sandbox Code Playgroud) 我正在尝试https://github.com/FormidableLabs/urql/tree/master/packages/svelte-urql人所做的令人惊叹的作品。
直到今天问题为止一切正常。
我正在使用下面的代码,它给了我这个错误:
Error: Function called outside component initialization
at get_current_component (index.mjs:615)
at getContext (index.mjs:648)
at getClient (urql-svelte.mjs:55)
at query (urql-svelte.mjs:81)
at Players.svelte:41
Run Code Online (Sandbox Code Playgroud)
代码:
<script>
import { query } from '@urql/svelte'
import { myQuery } from './myQuery'
let players
let myVars
function sleep (ms) {
return new Promise((resolve) => setTimeout(resolve, ms))
}
$: (async () => {
await sleep(2000) // this gives me the error; removing it make it work
players = query({
query: myQuery,
variables: { ...myVars }, …Run Code Online (Sandbox Code Playgroud) 我正在使用 Typescript 和 Prettier,每次我在函数 Prettier 的第一行中投射一些内容时,都会将分号作为第一个字符。
为什么?看来没有必要。我错了吗?
我读了基本原理,但仍然不明白为什么我们需要在那里放第一个分号。
Prettier 2.2.1 Playground 链接
--parser typescript
--no-semi
Run Code Online (Sandbox Code Playgroud)
输入:
function example() {
(this as MyType).method() // useless semicolon will be placed here
;(f as any).y = fy // the semicolon here is ok
return f
}
Run Code Online (Sandbox Code Playgroud)
输出:
function example() {
;(this as MyType).method() // useless semicolon here
;(f as any).y = fy // the semicolon here is ok
return f
}
Run Code Online (Sandbox Code Playgroud)
预期行为:
不得放置第一个分号。
我在 Prettier 存储库上提出了一个问题,但他们建议我在这里提问。
***更新:
如果我使用更漂亮的默认值,我也会遇到问题,请参阅此示例: …
svelte ×4
svelte-3 ×4
javascript ×3
express ×2
go ×2
graphql ×2
typescript ×2
casting ×1
csrf ×1
ecmascript-6 ×1
eslint ×1
go-pg ×1
graphql-js ×1
node.js ×1
postgresql ×1
prettier ×1
security ×1
sql ×1
union ×1
urql ×1
websocket ×1