我正在使用 Nuxtjs 作为应用程序。有许多路线通往网站的不同页面/部分。
但是,对于一种特定类型的路线,我希望用符号来标识它。
例如,可以创建到用户个人资料页面的正常路由,如下所示:
www.mywebsite.com/user/用户名
但是,如果我希望我的路线如下所示:
www.mywebsite.com/@用户名
如何在 Nuxt 或 Vue 中设置类似的东西?
我有一个要求,我需要在当地时区显示用户的时间。这需要使用 date-fns 来完成。
以下代码检查当前时间,然后根据时区将其转换为本地时间。
const { formatToTimeZone } = require('date-fns-timezone')
let date = new Date()
const format = 'D.M.YYYY HH:mm:ss [GMT]Z (z)'
const output = formatToTimeZone(date, format, { timeZone: 'Asia/Calcutta' })
Run Code Online (Sandbox Code Playgroud)
但是,我如何即时猜测用户的时区?
在 中moment.js
,您可以使用moment.tz.guess()
. 但是我如何在没有moment.js
和使用的情况下做到这一点date-fns
?
https://runkit.com/embed/835tsn9a87so
更新:我将在 VueJS 应用程序中使用它。因此,如果有任何其他相关解决方案,也欢迎使用。谢谢。
我可以用来this.$router.go(-1)
将用户重定向到之前的路线。但是,我无法理解如何在重定向之前获取有关先前路线的信息。
基本上,通过首先阅读前一条路由是什么,我想确保前一条路由来自同一个域,然后才重定向到它,否则做其他事情。
我在我的项目中使用 Sequelize。这是两个模型:
const User = db.define('user', {
name: Sequelize.STRING,
password: Sequelize.STRING
})
const Product = db.define('product', {
name: Sequelize.STRING,
price: Sequelize.INTEGER
})
Run Code Online (Sandbox Code Playgroud)
现在用户可以购买产品,我有如下关联设置:
Product.belongsToMany(User, {through: 'UserProducts'})
User.belongsToMany(Product, {through: 'UserProducts'})
Run Code Online (Sandbox Code Playgroud)
我还有这个带有附加列的 UserProducts 表。
const UserProducts = db.define('UserProducts', {
status: Sequelize.STRING
})
Run Code Online (Sandbox Code Playgroud)
Sequelize 使用 userId 和 productId 的组合创建一个复合键,并且只允许一个具有 userId 和 productId 组合的记录。例如,userId 2 和 productId 14。
这对我来说是个问题,因为有时人们想要多次购买。我需要以下场景之一才能工作:
不要使用复合键,而是在 UserProducts 中使用一个全新的自动增量列作为键。
不是单独使用 userId 和 productId 制作密钥,而是允许我在密钥中再添加一列,例如 ,status
以便唯一密钥是三者的组合。
我确实想使用关联,因为它们提供了许多强大的方法,但想要更改唯一键以这样一种方式工作,即我可以添加具有相同用户 ID 和产品 ID 组合的多行。
由于我的模型/数据库已经在运行,我将需要利用迁移来进行此更改。
对此的任何帮助表示高度赞赏。
我正在使用NativeScript-Vue。
我有一些受保护的页面(仅限会员)。我将用户的登录数据保存在localstorage中。我有两个问题:
当用户打开应用程序时,我们应该在应用程序中的哪个位置编写代码以检索用户的登录数据。我想从本地存储中读取数据并将其填充到Vuex存储中。我知道如何从localstorage读取数据,但是我不知道应该在何时何地进行操作,以便用户可以首先登录。
有几个页面受到保护(仅限成员)。对于这些用户,如果他们已登录(基于vuex存储),我想向他们显示页面内容,但是如果他们未登录,我希望他们导航到登录页面。同样,我对于应该在何处编写此代码/条件感到困惑。
任何帮助表示赞赏。
我有一个要求,需要使用 Google Text to Speech 将一些文本转换为音频。
我正在使用 Nodejs 将文本转换为音频文件,并希望将音频输出发送到前端。
NodeJS代码:
const client = new textToSpeech.TextToSpeechClient();
const request = {
input: {text: 'Hello World'},
// Select the language and SSML voice gender (optional)
voice: {languageCode: 'en-US', ssmlGender: 'NEUTRAL'},
// select the type of audio encoding
audioConfig: {audioEncoding: 'MP3'},
};
const [response] = await client.synthesizeSpeech(request);
Run Code Online (Sandbox Code Playgroud)
response.audioContent
包含音频数据,它是一个缓冲区对象,如下所示:
<Buffer ff f3 44 c4 00 00 00 03 48 00 00 00 00 ff 88 89 40 04 06 3d d1 38 20 e1 …
Run Code Online (Sandbox Code Playgroud) 我在数据库中存储了一些文本,如下所示:
let text = "<p>Some people live so much in the future they they lose touch with reality.</p><p>They don't just <strong>lose touch</strong> with reality, they get obsessed with the future.</p>"
Run Code Online (Sandbox Code Playgroud)
文本可以有许多段落和 HTML 标签。
现在,我还有一句话:
let phrase = 'lose touch'
Run Code Online (Sandbox Code Playgroud)
我想要做的是搜索phrase
in text
,并返回包含phrase
instrong
标签的完整句子。
在上面的例子中,即使第一个段落也包含短语'lose touch',它应该返回第二个句子,因为在第二个句子中,该短语在strong
标签内。结果将是:
They don't just <strong>lose touch</strong> with reality, they get obsessed with the future.
Run Code Online (Sandbox Code Playgroud)
在客户端,我可以用这个 HTML 文本创建一个 DOM 树,将它转换成一个数组并搜索数组中的每个项目,但在 NodeJS 中文档不可用,所以这基本上只是带有 HTML 标签的纯文本。我如何在这段文本中找到正确的句子?
我正在创建一个使用通配符子域的 NextJS 项目。
我已经在 Vercel 上设置了通配符子域,因此现在每个通配符子域都指向我的主 NextJS 安装。在 NextJS 应用程序中,我正在读取子域名并相应地提供内容。
所以,假设我的通配符条目是*.example.com
现在,所有子域(例如roman.example.com
、greek.example.com
)都可以正确提供来自我的数据库的内容。
我面临的挑战是将自定义域映射到每个子域。
例如,如果我想myroman.com
映射到roman.example.com
并mygreek.com
映射到greek.example.com
,我无法让它工作。
举例来说,如果在myroman.com
DNS 记录中,如果我添加指向 的 CNAME 记录roman.example.com
,然后如果我访问myroman.com
,它会显示 404 部署未找到错误。请注意,类似的myroman.com
是客户的站点,我唯一可以要求客户的就是添加 DNS 记录以将其映射到子域。我无法控制他们的领域或类似的东西。
您会看到像 substack 这样的公司向其客户提供此类自定义域映射。
您能建议实现此目标的最佳方法是什么吗?我可以更改主机或其他任何东西来使这项工作正常进行。
我正在使用 NextJS 和 Tailwind CSS。
在我的应用程序中,用户可以选择包含不同配色方案以及预选字体列表的主题。他们可以为应用程序选择他们喜欢的字体。
这些只是 Google 字体。
我不确定根据从数据库收到的字体名称加载字体的最佳方法是什么。database
我可以从in加载数据serverSideProps
,但是如何在渲染之前加载字体,以免屏幕闪烁。你能帮忙吗?
更新
到目前为止,我已经完成了以下操作:
在 中tailwind.config.js
,我使用不同的可用字体扩展了主题。
主题:{ fontFamily:{ inter:['Inter','sans-serif'],cal:[“Cal Sans”,“Inter”,“sans-serif”],arima:['Arima Madurai','cursive' ], opensans:['打开 Sans', 'sans-serif'], } }
我为每种字体创建了一个样式表,该样式表存储在以下位置的公共文件夹中:
/fonts/opensans/stylesheet.css
/fonts/cal/stylesheet.css
/fonts/inter/stylesheet.css
/fonts/arima/stylesheet.css
这些样式表包含字体。下面是一个例子:
@font-face {
font-family: "Cal Sans";
src: url("CalSans-SemiBold.woff2") format("woff2"),
url("CalSans-SemiBold.woff") format("woff");
font-weight: 600;
font-style: normal;
font-display: swap;
}
Run Code Online (Sandbox Code Playgroud)
pages/index.js
),我使用加载用户的首选项serverSideProps
并将其传递给Layout
组件。该布局组件具有head
通过创建的next/head
. 我们将从服务器接收到的 font 属性称为themeFont
。假设用户的偏好是Cal Sans
,并且用户的偏好作为 value 存储在数据库中cal
。所以,themeFont
价值将为 …
我正在使用 React Hook Form 库。https://react-hook-form.com
如果是像学生姓名和学生年龄这样的简单表格,那么申请就非常简单。
const { register, handleSubmit, formState: { errors } } = useForm();
Run Code Online (Sandbox Code Playgroud)
我只是创建这两个输入字段并注册它们。
<div className="w-full flex flex-col mt-4">
<label>Name</label>
<input
type="text"
placeholder="Enter Name" {...register("name")}
/>
</div>
<div className="w-full flex flex-col mt-4">
<label>Age</label>
<input
type="text"
placeholder="Enter Age" {...register("age")}
/>
</div>
<div>
<button onClick={handleSubmit(submitData)}>
Update
</button>
</div>
Run Code Online (Sandbox Code Playgroud)
SubmitData函数将获取formData
可以使用的数据。将handleSubmit
注册的字段绑定到formData
const submitData = async formData => {
console.log(formData)
}
Run Code Online (Sandbox Code Playgroud)
将formData
如下所示:
{"name":"test", "age":"27"}
Run Code Online (Sandbox Code Playgroud)
我的要求是通过允许我添加许多学生来使该表单动态化。我应该能够使用名为“添加学生”的按钮重复一组这些字段。每次我添加新学生时,都应该在这两个字段中创建一个新行,我可以在其中添加新学生姓名。最后,输出formData
应该看起来像一个学生数组:
[{"name":"test1", "age":27},{"name":"test2", "age":28},{"name":"test3", "age":29} ]
Run Code Online (Sandbox Code Playgroud)
我可以创建 …
javascript ×5
vue.js ×3
next.js ×2
node.js ×2
nuxt.js ×2
reactjs ×2
vuejs2 ×2
arraybuffer ×1
database ×1
date-fns ×1
nativescript ×1
postgresql ×1
react-hooks ×1
sequelize.js ×1
tailwind-css ×1
timezone ×1
vue-router ×1
wildcard ×1